InfiniteRunner모작 #03

부침개는 맛있다.·2022년 3월 10일
0

InifiteRunner모작

목록 보기
1/6

일지

2일차에 이어서 유튜브를 보며 따라하기를 진행했다.
이번엔 프로토타입 테스트를 위한 장애물을 생성하고
이 생성과정은 임의의 위치에 랜덤하게 생성되고,
그 장애물이 캐릭터와 충돌했을 시 캐릭터의 죽음, 그후 게임 재시작까지 구현하였다.
그러나 2일차에 이어서 여전히 블루프린트로만 작업하였다. 추후 C++로 옮겨야한다.

장애물 랜덤 생성 구현

아래는 2일차때 블루프린트를 통해 만들었던 바닥 타일이다.
BP_FloorTile's ViewPort

여기에 ArrowComponent 3개를 만들어 배치하였다.(SpawnPoint, SpawnPointL, SpawnPointR)
이 SpawnPoint들 중 하나를 랜덤하게 선택하고 그 위치에 장애물로 바위를 생성하게 만들었다.
이후 게임종료를 구현하기 위해선 캐릭터의 죽음을 구현해야했고 그러려면 바위와 부딛혔을때 게임이 종료되게끔 해야했다. 그러려면 바위에 Collision이 존재해야했고

BP_FloorTile's SpawnBlocker
장애물이 랜덤하게 생성된 모습

게임종료 및 재시작 구현

장애물에 부딛히면 죽게 구현해야했다.
그러기위해 먼저 캐릭터에 Death라는 CustomEvent를 만들었다.
이 Death에서는 우선 캐릭터 입력을 Disable하고 Character클래스에서 Death플래그를 세워 이 값이 참이면 모든 움직임이 멈춰지게 했다.

그런 다음 부딛힌 위치에 죽는 이펙트와 소리를 발생시키고
캐릭터의 Visibility를 거짓,
2초의 딜레이후 ConsoleCommand로 "RestartLevel"를 하여 재시작을 구현하였다.

이후 바위에서 OnComponentHit을 사용하여 캐릭터와 부딛힐 시 이 Death이벤트가 작동되도록했다.
BP_Character's Death(CustomEvent)
게임종료 2초후 게임 재시작

profile
저는 됩니다. 할 겁니다.

0개의 댓글