FPS Game

게임 소개

이 게임은 교육용 fps 게임입니다. 이 게임이 다른 fps게임과 다른 점은 총알을 조작할 수 있다는 것입니다. 영화 "원티드"에 영향을 받아 총알을 휠 수 있게 하면 재미있겠다고 생각하여 만들게 되었습니다. 인게임 목표는 주어진 총알안에서 마스크를 쓰지 않은 사람을 맞춰 제거하는 것입니다. 적의 반경 안에 들어갈 시 공격을 당해 피해를 입으니 멀리서 총을 쏴서 총알을 조작하여 맞추도록 개발하려고 했습니다.

게임 내용

게임을 실행하게 되면 아래 사진과 같이 좌측에 키 설명란이 나와있습니다. t키를 이용해 끄고 킬 수 있습니다. 여기서 다른 게임과 다른점이 alt키를 눌러서 발사 된 마스크를 조작하는 것입니다. 추가적으로 alt키를 뗄 시 강제 소멸 기능도 추가하였습니다. 좌측 상단에는 마스크 장전 표시로 마스크가 장전되지 않을 시에 마스크가 날라가지 않도록 구현하였습니다. 우측 상단에는 이 게임의 목표를 나타내는 UI로 타겟을 8명을 처리할 시 게임이 클리어가 됩니다. 우측 하단에는 체력 바를 구현하였습니다. 타겟에게 공격을 당할시 체력 바가 1씩 까이며 0이 되면게임이 종료됩니다.

구현 코드- Player

업데이트 함수안에 있는 것들이 저희가 플레이어의 움직임을 구현한 부분입니다. 주석으로 설명 되어있는 것처럼 키보드에서 키를 입력받으면 플레이어 게임 오브젝트가 움직이도록 구현하였습니다.

구현 코드- Target

타겟을 구현하기 위해서 2개의 게임 오브젝트를 사용하였습니다. 먼저 타겟이 태어나는 위치와 타겟이 생성되는 시간차를 설정해주는 타겟 팩토리 오브젝트를 만들었고 또 하나는 실질적으로 타겟이 생성되었을 때 나타나는 타겟 오브젝트입니다. 타겟 오브젝트에서는 스스로 지정된 범위에서 움직이도록 구현하였고 이때 자바에서 쓰레드와 비슷한 크루틴을 이용하여 구현하였습니다. 그리고 플레이어가 공격 범위에 들어오는 것을 감지하는 함수와 공격함수를 구현하였습니다.

구현 코드- GunAndMask

타겟과 비슷하게 건 오브젝트와 마스크 오브젝트가 있으며 건 오브젝트는 플레이어 오브젝트에 상속되어 있습니다. 건 오브젝트는 게임이 실행이 되면 마스크 오브젝트 풀을 만들어서 마스크가 언제든지 장전되게 만들었습니다. 그리고 발사 기능도 만들었습니다. 발사 키를 누루면 마스크가 나가고 마스크가 나간 후부터는 마스크에서 사용자의 키를 받아 조작하도록 구현하였습니다.

구현 코드- Manager

이 부분은 게임에 필요한 각종 U.I를 넣었고 게임이 클리어 되거나 종료 될 시 다음 화면으로 넘어가는 기능을 구현하였습니다.

게임UI