자유게시판

미드나잇 블루는 적도  스킬 수의 제한 (카드 장수 형식) 을 가지고 있으므로

적이 만약 스킬을 사용할 수 없게 된 경우에는 일반공격 혹은 방어를 선택해야 합니다.

그리고 기본 공격/방어  역시 스킬 카드의 모양을 보여주어야 하므로

다음과 같은 루프문을 짜서 적용시켰습니다.

 

알고리즘 적으로 정리되지 못하고 좀 조잡한 느낌이 있긴 하지만

실행 시간에는 큰 영향을 미치지 않더군요.

 

 

( 사실 이건 나중에 고쳤다가 잘못되버릴 경우를 대비한 백업 )

 

# 우선 루프는 적의 행동이 결정될때까지 반복되어야 하므로 loop 반복문을 사용

      loop do

# 처리시간 존재하는 loop 문 내에서 그래픽은 update 하지 않으면 안되더라
        Graphics.update
        Input.update

# available_actions 배열은 루프문 앞에서 make_action 메소드 내부에 정의 되어 있다.
        if available_actions.size == 0
# 만약 사용 가능 스킬이 하나도 없을 경우, 크기 2의 난수를 활용해서

          random_num = rand(2)
# 50% 확률로 공격과 방어 구분

          if random_num % 2 == 0

# kind 가 0이면 skill 이외의 행동을 의미
            self.current_action.kind = 0

# basic 이 0이면 공격, 1이면 방어
            self.current_action.basic = 0

# skill_id는 사실상 카드를 표현하는데 쓰인다. 998 과 999는 실질적으로 사용되는 스킬이 아닌 카드 표시용 이미지만 가진 스킬
            self.current_action.skill_id = 999

# 공격시 랜덤타겟을 뜻한다.
            self.current_action.decide_random_target_for_enemy

# 리턴은 루프를 끝내기 위해 필요
            return

# 솔직히 브레이크는 필요없다. 무한루프 방지용 안전빵이라는 것으로.
            break

# 이거슨 방어. (kind 0, basic 1) 바로 위의 공격 부분과 동일
          elsif random_num % 2 == 1
            self.current_action.kind = 0
            self.current_action.basic = 1
            self.current_action.skill_id = 998
            self.current_action.decide_random_target_for_enemy
            return
            break
          end
        end

# avaiable_actions 는 배열이다. action 은 앞의 배열 중에서 한 element를 뽑기 위한 index로 사용

        action = available_actions[i]

# action의 rating은 3이상 차이나게 하지 말자.
        if action.rating > rating_max - 3
          if value < action.rating - (rating_max - 3)

# 랜덤 변수 value가 rating 범위 내에 들었을 경우,

# 해당 스킬을 current_action에 대입 (kind는 1, basic은 상관없음, skill_id는 해당 skill의 id
            self.current_action.kind = action.kind
            self.current_action.basic = action.basic
            self.current_action.skill_id = action.skill_id

# 이 부분은 미드나잇 블루만의 스킬 데이터베이스에 속한

#has라는 자기참조 메소드. has[i] 는  id " i " 의 값을 가진 액터가 가진 스킬의 수를 의미.

#  액터가 적일 경우, id 에 100을 더한 값의 index에 값을 저장한다.

# 이 경우, 해당 스킬의 스킬카드의 장수가 0 이하일 경우
            if $data_skills[self.current_action.skill_id].has[self.id + 100] <= 0

# 유효 액션에서 해당 스킬을 지운다.

# 세이브/로드 시 이 정보는 기록되지 않으므로 전투 1회에 한정된다.

              available_actions.delete(action)

# 루프  테스트용  윈도우 출력 구문.
              # p available_actions

# 루프 진행용 변수 i.  만약 유효액션보다 i가 커지면 i값 초기화
              i += 1
              if i >= available_actions.size
                i -= available_actions.size
              end

#만약 원하는 스킬을 얻지 못했을 경우 루프를 종결시키지 않고 진행시킨다.
              next
            end
                       
# 만약 스킬의 내용이 정해졌다면 타겟을 정하고 return 한다.            
            self.current_action.decide_random_target_for_enemy
            return
            break
           
          else
            value -= action.rating - (rating_max - 3)
          end
        end
# 역시 루프 진행용 변수 i.        
        i += 1
        if i >= available_actions.size
          i -= available_actions.size
        end

      end

Who's 시트르산

?

제작중인 게임 :

Midnight Blue  (미드나잇 블루) - RPGXP

 공동제작 : 휘파람개비님

 시스템 : 45%, 스토리 : 10%, 맵 : 3%, 제작 : 1%

 CG : 2%         총 진행도 : 3%

 

 이번 게임은 공동제작인 만큼 최선을 다하겠습니다 ^^

기다려주세요~~


  1. 아방스 게시물 · 댓글 작성 규칙 (최근 수정일 2015.11.25)

    Date2012.07.17 Category공지 By완폐남™ Views40548
    read more
  2. 오늘 꿈을 꿨는데

    Date2014.02.11 Category막장 By하얀악어 Views470
    Read More
  3. 시트르산의 적 행동 작성 메소드 내부 루프의 세부 설명

    Date2011.01.23 Category막장 By시트르산 Views471
    Read More
  4. 케잌을 사왓는데 왜 먹지를 못하니

    Date2011.01.18 Category막장 By위너프리드● Views473
    Read More
  5. 노트북이 아직 뭔가 이상하네요

    Date2013.10.02 Category막장 ByJACKY Views473
    Read More
  6. 우와 씨빵

    Date2010.11.01 Category막장 By테시오 Views474
    Read More
  7. This is the 꾸준글

    Date2011.01.22 Category막장 By맛난호빵 Views474
    Read More
  8. 천음님

    Date2010.10.21 Category막장 By칼리아 Views475
    Read More
  9. 심심해, 허무해!

    Date2010.10.30 Category막장 By메모라이즈 Views477
    Read More
  10. 똥똥배 대회를 노립니다!

    Date2014.01.30 Category막장 By내손목아지 Views478
    Read More
  11. 음....

    Date2010.10.20 Category막장 By제주 삼다수 Views479
    Read More
  12. 아이 심심해.

    Date2010.10.28 Category막장 By달탱이 Views479
    Read More
  13. 엑박이라니;;

    Date2011.02.14 Category막장 By노나메 Views479
    Read More
  14. 레벨 1 포인트 몇되야지 됨?

    Date2011.02.23 Category막장 ByITE Views479
    Read More
  15. 레몬!

    Date2010.11.04 Category막장 ByLㅏ Views480
    Read More
  16. 명절 잔혹사 오지랖

    Date2014.09.07 Category막장 By파치리스 Views480
    Read More
  17. 귀엽지 않습니까?

    Date2011.02.09 Category막장 ByAlkaid Views481
    Read More
  18. 우와 막장이다 막장

    Date2011.02.23 Category막장 ByITE Views483
    Read More
  19. 오늘부터 다른일 내려놓고 게임만 만들어야겠습니다!

    Date2014.02.06 Category막장 By내손목아지 Views483
    Read More
  20. This is the 꾸준글

    Date2011.01.23 Category막장 By맛난호빵 Views484
    Read More
  21. 현문님look

    Date2010.12.04 Category막장 BySCUD Views485
    Read More
목록
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 64 Next
/ 64