자유게시판

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

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

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

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

 

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

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

 

 

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

 

# 우선 루프는 적의 행동이 결정될때까지 반복되어야 하므로 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%

 

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

기다려주세요~~


List of Articles
분류 제목 글쓴이 날짜 조회 수
공지 아방스 게시물 · 댓글 작성 규칙 (최근 수정일 2015.11.25) 17 file 완폐남™ 2012.07.17 40615
막장 이제 나는 울프툴 게임을 영원히 못하겠군 2 file 비둘디 2013.11.10 1097
막장 이제 고1입니다 9 현문 2011.03.04 852
막장 이윤열팬님 제가 왜 자꾸 글 지우는지 암? file 완폐남™ 2011.08.19 960
막장 이왕이면 질답란에 공지로.... 2 Alkaid 2010.12.21 1102
막장 이온아 5 file Lathrion 2011.07.21 921
막장 이야~~!!! 도대체... 광고가... 1 무명시절 2017.02.20 51
막장 이상해씨야 보거라 ^^ 19 file JACKY 2011.12.28 1269
막장 이상한 삼단논법 13 미루 2013.03.30 791
막장 이상한 꿈. 4 JACKY 2013.03.24 985
막장 이번에는 팔자에도 없는 IRC인가.. 7 Alkaid 2012.05.11 1292
막장 이런거 경험해보신분 없음? 6 file A.미스릴 2014.09.27 502
막장 이런 적막감 좋네요 2 무명시절 2023.06.02 193
막장 이런 웹사이트도 있죠. 6 Alkaid 2011.08.24 968
막장 이런 세계관은 이상한가요? 1 zero? 2017.12.20 109
막장 이런 거 보면 좋게 봐 줄 수가 없다 일본...(극우) 2 무명시절 2016.02.25 141
막장 이닉바꿧음 1 NewSet 2011.07.31 1043
막장 이누야샤 안티론<자작> 3 질풍처럼 2011.03.12 1004
막장 이놈의 광고쟁이들 ... 9 TheEK 2013.02.01 1216
막장 이것이 진짜 야짤이다! 1 노나메 2010.10.18 3848
막장 이것은 윈도우 3.x입니다. Alkaid 2011.04.14 872
목록
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