자유게시판

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

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

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

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

 

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

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

 

 

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

 

# 우선 루프는 적의 행동이 결정될때까지 반복되어야 하므로 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 41176
막장 스카이림 메인테마곡을 고음질로 추출해내는데 성공함. 1 맛난호빵 2012.02.05 1671
막장 스크립트를 만드는 과정. 11 file JACKY 2012.12.12 700
막장 스타2 혼종미션 만화 (공지에 위배가된다면 지우겟습니다.) 1 동그라미 2010.12.29 996
막장 스타2 혼종미션 만화2 (공지에 위배가된다면 지우겟습니다.) 4 동그라미 2010.12.29 947
막장 스타바운드 한줄요약 2 맛난호빵 2013.12.09 913
막장 스타크래프트2 군단의 심장 그랜드마스터 달성 4 file TheEK 2013.04.02 1916
막장 스토리vs캐릭터 16 호안마마 2011.11.05 930
막장 스팀 여름할인 단상. Alkaid 2021.06.26 68
막장 스펀지 케이크 만드는 방법. 7 Alkaid 2013.02.02 797
막장 스플린터 셀에 빠져버림 4 file 스틱커쳐 2013.09.21 925
막장 습작님의 요청에 의해서 이것저것. 4 Alkaid 2012.06.27 885
막장 시대를 범하는 게임 12 미루 2013.01.15 874
막장 시도때도 없이 올라오는 광고를 막기위해 1 무명시절 2016.04.14 80
막장 시발 10 file 춰억헐릿 2012.06.25 3154
막장 시유 유출됨 ㅊㅋㅊㅋ 1 맛난호빵 2012.01.04 2877
막장 시유와 그 노래의 목소리가 매치가 잘안되는것은 맛난호빵 2011.09.06 926
막장 시트르산님 2 현문 2010.12.08 953
막장 시트르산님 계십니까 현문 2011.02.20 603
막장 시트르산의 적 행동 작성 메소드 내부 루프의 세부 설명 시트르산 2011.01.23 476
막장 신경 안쓰고 싶어도 스팸글때문에 스트레스를 받음 3 파치리스 2016.04.09 128
목록
Board Pagination Prev 1 ... 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 ... 64 Next
/ 64