[so _long] sprite 구현

Yejin Kim·2022년 7월 16일
0

42 cursus

목록 보기
15/20

so_long 보너스 항목에는 character를 sprite로 표현하는 부분이 포함되어 있다.

sprite는 character가 움직이는 것처럼 보이게 하는 것으로 이를 위해서는 다양한 방향, 모습에 따른 캐릭터의 형태가 필요하다.

위와 같은 캐릭터가 있다고 하면 캐릭터의 방향과 움직임의 정도에 따라 xpm file로 저장하고,

프로그램에서 key 입력에 따른 character의 방향과 이제까지 움직인 정도에 따라 load할 image의 이름을 구분지었다.
방향, 움직인 정도를 각각 축으로 하여 2차원 배열에 load하고,
위와 같이 적절한 이미지를 가져다 출력했다.
방향은 0, 1, 2, 3 이 각각 4가지의 방향을 의미하고, 움직인 정도는 (이제까지 움직인 걸음의 수 % 4) 로 계산하여 계속해서 발이 자연스럽게 움직이도록 구현할 수 있다.

so_long 구현 당시에는 한 칸 단위로 움직이게끔 구현했는데, float 로 position을 저장하여 캐릭터가 조금 더 자연스럽게 움직일 수 있도록 하는 것이 더 좋은 방법이라고 생각한다. 추후 cub3d를 하면 이 부분까지 고려하게 됨 !
위와 같이 구현하면 float 단위로 0.2(예시)씩 움직이되, 장애물 여부, 수집품 여부 등을 확인할 때는 int로 casting을 하여 map 정보에 접근하는 등의 처리가 필요하다.


🦋 so_long repo address
https://github.com/kyj93790/42-cursus/tree/master/so_long

profile
The World Is My Oyster 🌏

0개의 댓글