soma0sd

코딩 & 과학 & 교육

게임 개발일지: 플레이어 이동과 화면 이동

반응형

오늘은 키 입력을 받아 플레이어 캐릭터가 이동하는 방법과 화면을 이동하는 방법을 결정합니다.

플레이어 이동

플레이어 이동은 즉시 일정속도로 움직이기보단 방향키를 누르는 동안 최대속도까지 점점 가속하는 방식입니다. 이 방식은 방향키를 짧게 누르면 조금만 움직이고 누르고 있는 동안에는 충분히 빠른 속도로 이동할 수 있어서 조작감을 향상합니다.

$$ \begin{align} v_{new} &= v_{0} + a \\ x_{new} &= x_{0} + v_{new} \end{align} $$

이전 위치 \( x_{0} \)와 이전 속도 \( v_{0} \), 가속도 \( a \)를 통해 새 위치 \( x_{new} \)를 구합니다.

화면 이동

게임은 플레이어 캐릭터가 게임화면의 중앙에 위치합니다. 플레이어가 이동하면 화면은 플레이어 캐릭터가 가운데 위치한 상태를 유지하고 플레이어 캐릭터의 좌표정보만 수정됩니다.

이 관계를 조금 변형해서, 플레이어 캐릭터가 빠르게 움직이면 화면이 조금 뒤늦게 따라오도록 만듭니다. 이렇게 하면 플레이어 캐릭터의 이동에 속도감이 더해집니다.

$$ \vec V_{new} = \frac{\vec P - \vec V_{0}} {v_{max}} + V_{0} $$

수식에 사용하는 벡터는 pygame.math.Vector2를 사용했습니다. 플레이어 캐릭터의 현재위치 \( \vec P )\에 맵의 이전 위치 \( \vec V_{0} )\를 빼서 둘 사이의 간격벡터를 구한 뒤 플레이어 캐릭터의 최대 속도인 \( v_{max} )\를 나눈 값이 화면이동량이 됩니다.

플레이어의 최대속도(종단속도)가 높을수록 화면이 늦게 뒤따라오며 이를 통해 플레이어가 더 빠른 속도를 체감할 수 있도록 합니다.

반응형
태그:

댓글

End of content

No more pages to load