-
팩맨 - 2일차(플레이어 움직임 및 이미지)게임 개발/팩맨 포트폴리오 2020. 1. 15. 23:22
플레이어 이동 실제 팩맨의 플레이어 움직임은 움직이는 키를 누르지 않아도 마지막에 눌렀던 방향으로 움직입니다.
플레이어의 렉트를 작게 만들고 팩맨 이미지 자체도 줄여 방향키로 계속 조종하는 형식으로 하면 쉽게 할 수 있었지만 똑같이 해보고 싶어 구현해보았습니다.
마지막에 누른 방향으로 계속 이동하는 것에는 문제가 없었지만 방향을 변경할 때 플레이어가 벽에 어깨빵하고 지나갈 수 없으니 이를 해결하는 데에 시간이 꽤 걸렸습니다.
변경하고자 하는 방향의 키를 눌렀을 때 해당 방향의 타일에 벽이 없어야 하며 그 타일과 일직선으로 위치해야 해당 방향으로 이동할 수 있는데 이것 때문에 좀 힘들었습니다.
처음에는 플레이어 렉트의 4방향에 얇고 긴 렉트를 붙여 해당 방향에 충돌을 안하는지 검사하도록 하였으나 방법을 변경하였습니다. 이유는 검사하려는 렉트의 길이와 플레이어 렉트의 길이가 같을 수 없으므로 검사하는 렉트가 벽과 충돌하지 않더라도 플레이어 렉트는 충돌하여 이동하지 못하는 문제가 있었습니다. 또한, 더 간단하게 할 수 있는 방법을 찾고 싶었습니다.
찾은 방법은 플레이어의 좌표로 타일 인덱스를 구하고 그 인덱스를 사용하여 변경하고자 하는 방향에 존재하는 타일에 벽이 있는지 플레이어와 위치가 같은지 체크하는 방법입니다. 이 방법을 사용하여 for문을 사용하지 않고 변경하고자 하는 방향의 키를 눌렀을 때 해당 방향에 벽이 있다가 사라지면 그때 이동되도록 할 수 있었습니다.
그리고 플레이어의 인덱스를 사용하여 주변 9개의 타일만 검사하여 플레이어와 벽의 충돌을 처리하였습니다.
'게임 개발 > 팩맨 포트폴리오' 카테고리의 다른 글
팩맨 - 5일차(아이템 및 랭킹 데이터) (0) 2020.01.18 팩맨 - 4일차(에너미 A* / 길찾기 알고리즘) (0) 2020.01.17 팩맨 - 3일차(에너미 상태 처리 및 움직임) (0) 2020.01.16 팩맨 - 1일차(맵툴 및 맵 제작) (0) 2020.01.14 팩맨 - 개발 계획 (0) 2020.01.14 댓글