[게임개발] 고양이 로그라이크 작업일지 008. 여러칸 이동하기

By @sesangsokuro3/28/2018kr

반성


오랜만입니다. 찡찡이아빠, 게임개발맨 세상속으로입니다.

이렇게 드문드문 개발 하면 안되는데... 체력의 한계인지 미루다 간만에 작업을 했습니다.

캐릭터 이동입니다.

우선은

1. AStar 알고리즘을 이용해서 캐릭터 이동 가능한 기반을 만들구요.

( AStar는 벽, 바닥없는 구멍 등을 피해서 이동하는 걸 도와줍니다 - 길찾기 기능이죠 )

2. 플레이어 턴일때 화면 클릭( 사용자 입력 ) 을 하면 해당 경로를 남은 액션에 넣어줍니다.

액션은 플레이어나 몬스터가 행동하는 행동 1개를 뜻합니다.

마법 캐스팅, 우측의 적공격, 물약 마시기, 템 줍기와 같죠.

인벤토리 열기, 닫기등은 액션에 포함되지 않습니다. 입출력 단에서 해결합니다.

3. 액션이 있는 경우 해당 액션의 내용에 따라 데이터를 변경하고 화면에 그려줍니다. ( 액션 체크 상태 )

( 위치가 이동되었다면 이동된 위치에 캐릭터를 그려줍니다 )

4. 몬스터 턴이 다 지나고, 플레이어 턴으로 돌아왔을때

액션 리스트가 비어있지 않는 경우 ( 3칸 이동을 했는데 이전턴에 1칸 이동만 한 경우 2칸 이동 경로가 남아있을 겁니다 )
플레이어는 입력을 하지 못하고 남은 것 중 첫번째 액션을 따라 자동으로 이동합니다 ( 액션이 비어있는 경우는 키보드, 마우스, 터치 입력을 받습니다 )

제가 좋아하는 로그라이크인 돌죽에서는 이렇게 액션이 남은 경우라도 적으로부터 피격 당하거나

새로운 몬스터가 시야에 들어오면 남은 행동을 하지 않고 ( 액션리스트를 비우고 )

사용자에게 입력가능한 턴을 돌려주는데 이것은 나중에 작업하기로 하죠.

결과물 - 움짤

KakaoTalk_20180328_034309083.gif

다음 목표

이제 이동이 가능하게 되었으니

몬스터 AI도 넣어야 될 상황입니다.

다음은 잠자기 상태에서 플레이어를 인식하고 깨어나는 몬스터를 만들어보도록 하겠습니다.

잠자기 상태를 기록할 ( 버프/디버프 ), 와 몬스터 턴에 사용될 몬스터별 AI가 필요하겠네요

우선은 잠에서 깨는 것 뿐이지만요 ㅎㅎ

11

comments