DevLog_GBB999_04

 

이제 장애물을 스폰시키자.


내가 생각 하고 있는게임은 인피니티런+가위바위보를 차용한 슈팅 정도로 정의 할수 있겠다.내 우주선은 가위 바위 보 중 두개를 가지고 있고 그중 하나를 발사해 승리해 높은 승점을 얻는 게임을 만들것이다.


그럼 장애물도 가위 바위 보 3개중 하나가 나오면 된다.

내가 가진 무기중 하나로 이길수 있는 라인에 위치해 발사하면 되는것이다.


그럼 일단 간단히 모델링부터.

나중에 다 바꿔줄거니 대충 만들어 준다.요래요래 




밸런스등의 깊은 부분은 나중에 고민 하기로 하고 일단은 기본적인 기능 구현 위주로 작업을 해 보자.
floor 생성시 같이 생성 하면 되고,
적당히 촘촘하게 생성할수 있으려면 어떻게 해야 할까?
내 floor길이는 20미터 이다. 

계산의 편의를 위해  floor를 조금 수정해 주자.

루트가 가운데 있어 추가했던 로케이션의 수정값을 삭제 해준다.

그리고 루트기준으로 오브젝트를 다시 배치해 준다.



0-15미터에 2차선으로 장애물을 배치하고 15-5미터 구간에 남은 한차선에 소량의 장애물을 두는 방식으로 만들어 보자.

이런식으로 말이지...



새로운 BP를 생성한다. 

장애물 오브젝트의 배열을 장애물간의 간격의 다양성을 위해 빈 배열을 포함해 만들어준다.



장애물 추가 함수를 만들어 준다.

3개의 차선 배열을 만들어주고 요소값으로 y포지션 값을 넣어준다.

함수 시작에 차선배열을 섞어주고 첫번째와 두번째는 시작부터 나열

그리고 마지막 배열은 15미터 이후 소량 배치한다.

컨스트럭션에 연결해주고 확인해 보면


의도대로 작동 하는걸 확인할수 있다.



장애물들이 컨베이어 벨트를 타고 흐르는 느낌이 든다.

간격 조절이나 수량 조절은 나중에 하기로 하고 일단은 애니메이션을 만들어 줘야겠다.


일단은 간단하게 빙글 빙글 정도로만.

이제 게임 요소를 좀 만들어 보자.
일단은 가위바위보니까 1가위 2바위 3보 로 테스트를 해야겠다.

아무것도 누르지 않으면 게임 종료.비기거나 져도 게임 종료.


대충 요렇게 만들고 테스트 해 보고



그리고 어떻게 해야 하지...고민좀 해 봐야 겠다.

장애물BP는 생성후 본인이 뭔지만 알고 있음 될거같고,캐릭터 발사체가 판정하면 될거 같은데

발사체를 하나 만들어 주자BP_Projectile 나중에 차일드BP를 만들고 가위 바위 보 3개로 나눈다.

1번을 누르면 발사되게 연결 해 주고


빵야빵야

발사체가 장애물에 충돌 했을때 판정이 되면 된다.
간단하게 테스트 하기위해 머테리얼을 만들어주고 기본 검정에서 파괴 시키면 붉은색으로 변하도록 만들어 보자.그리고 파괴 시키면 된다.

발사체를 좀더 멀리 나가게 만들어 주고
테스트 해보면


이제 제법 게임같은 느낌이 난다.
발사체의 차일드BP를 만들고 진짜 가위바위보를 해 보도록 하자.


이상하다 이상하다 싶었는데 역시 뭔가 잘못 돌아가고 있었다.
배열의 랜덤 정수를 가져와 생성 해 주고 해당 정수로 가위 바위 보를 구분 해 보려 했는데
어디서 부터 엉망인지 모를 정도로 엉망이다. 
규칙이 보이지도 않고 짐작이 가는 부분도 없어서 참 난감하네
랜덤으로 가지고 오는 정수값이 싱크가 맞지 않아 생기는 문제라는 생각이 든다.
그럼 컨스트럭션에서 아이템 넘버를 설정해 주고beginplay에서 set 해주면 해결되지 않을까?

잘 나온다.랜덤 정수를 가져오는 과정에서 발생한 문제였다.



이제 장애물의 속성도 알고 있으니 가위바위보게임 까지 만들어 두자.
컬리젼 하나로 상황에 따라 변경 해 보려 했는데 런타임 에러가 뜬다.
그래서 장애물에 컬리전 3개를 만들어 줘야 할거 같다.
만약 나중에 다른 아이템이 추가 된다면 추가되는 아이템 전용의 컬리젼이 또 필요 할지도 모르겠다.
이게 노드로 보면 지저분해 보일지 모르지만 가장 심플한 방법이기도 하다.
일당 정리를 해 보면
장애물 : 가위 0 바위 1 보 2 
발사체: 가위 0 바위1 보2

장애물에서는 인덱스에 따라 필요한 컬리젼만 남기고 나머지는 노컬리젼으로 만들어 주면된다.이렇게...

그리고 해당 컬리젼의 오버랩되는 부분에서 승패에 관한 노드를 만들어 준다.
내가 내가 이기면 장애물은 빨간색으로 변하고 0.2초후 사라진다.
지거나 비기면 파란색이 된다.

이제 테스트 해 보면

게임으로서 기능을 하고 있다.
이제 미장센에 좀 신경을 써 봐야 겠다.

중간중간 발사체가 멀리 못가는건 empty 아이템일때 문제를 해결 해 주지 않아서 이다.
이건 나중에 아이템을추가 하면서 해결해 주도록 한다.

  



댓글