오늘은 피구게임의 캐릭터가 기본적인 움직임 (걷기, 수그리기, 공 잡기)을 할 수 있도록 코드를 작성하였습니다. 우선 전에 만들어둔 스프라이트를 불러오고 T F G H 키 (위 왼쪽 아래 오른쪽)를 누를 경우 걷는 모션을 하며 움직이도록 하였습니다. 일단 임시적으로 카메라는 캐릭터를 쫒도록 세팅해놓았습니다. 캐릭터가 바라보는 방향은 캐릭터보다 공의 x 좌표값이 작으면 image_xscale (캐릭터 이미지의 x 좌표값 크기를 세팅함.)을 -1(왼쪽을 바라본다.)로 설정하고 그렇지 않으면 1(오른쪽을 바라본다.)로 설정하여 캐릭터가 언제나 공을 바라보도록 할 예정이기에 키에 따라 image_xscale을 설정하도록 하지 않았습니다. 캐릭터가 오른쪽으로 바라보고 있을 경우 왼쪽으로 갈 때 모션은 앞으로 걷는 모션이면 자연스럽지 못하므로 이런 상황에서는 image_speed(스프라이트 이미지가 넘어가는 속도이다.) 값을 마이너스(스프라이트 이미지를 거꾸로 재생하게 된다.)로 세팅되도록 하였습니다.
그다음, 숙이기를 사용할 수 있도록 코드를 추가하였습니다. 숙이기 키는 Q키(1p 기준)로 결정하였습니다. 판정 같은 건 아직 없고 스프라이트만 움직이는 정도만 코드 작성을 하였습니다. 중간중간 이런저런 버그들이 발생하여 해결하였고 버그 하나만을 남겨두고 있는 상황, 이 버그는 Q키를 누르고 있을 때 방향키를 누르고 있다가 Q키를 떼게 되면 스프라이트 이미지가 특정 부분에서 루프를 돌지 못하는 버그입니다. 이런 버그는 굉장히 눈에 띄고 보는 사람을 불편하게 만들기 때문에 빨리 제거를 해야 합니다만 오늘 시간도 별로 없기에 (저녁이 되어서야 코드 작성을 시작했습니다.) 우선 수정을 내일로 미루고 공 잡기 모션 관련의 코드를 추가하기 시작하기로 하였습니다.
공 잡기 모션은 플레이어 1 기준으로 A키를 누름으로써 동작하도록 하였습니다. 이 모션의 경우 추후 위에서 날아오는 공을 잡는 모션, 바닥에 있는 공을 줍는, 또는 잡는 모션을 추가해야 합니다. 현재는 정면의 공을 잡는 모션밖에는 그려놓지 않았습니다. 그래도 일단 있는 것부터 하는 것이 나중에 몰아하는 것보다는 편하기에 후딱 하고 자러 들어가기로 결정하였습니다. (물론 이 글을 작성한 후에나 자러 갈 겁니다.) 처음에는 keyboard_check_pressed(키가 눌러지는 순간에 1을 반환함.)을 사용했지만 스프라이트 이미지 하나가 너무 빠르게 지나가버리는 문제가 발생하여 결국 keyboard_check(키가 눌러지는 동안 1을 반환함.)을 사용하여 코드를 작성하였습니다. 앞에서 숙이기 모션 코드를 작성하였기에 공 잡기 모션은 별 어려움 없이 마무리하였습니다.

이로써 공 잡는 모션까지 구현 완료되었습니다. 그런데 왜인지 숙이기 모션에 무언가 버그가 늘어나 버렸습니다. 일단은 오늘은 이 정도에서 마무리하고 내일 손을 보도록 하겠습니다. 참고로 해상도 관련해서 오늘 중간에 조금 손을 봤습니다. 기존의 200 대 100의 해상도가 너무 작다고 생각되어 격투 게임 제외 300 대 150으로 소폭 증가시켰습니다.
| 한번 더 버그수정과 3in1 게임 개발일지 #14 (0) | 2020.03.26 |
|---|---|
| 버그수정과 3in1 게임 개발일지 #13 (0) | 2020.03.26 |
| 피구게임과 3in1 게임 개발일지 #11 (0) | 2020.03.22 |
| 레이싱 게임의 3D 모델과 3 in 1 게임 개발일지 #10 (0) | 2020.03.18 |
댓글 영역