Monster Killer
스테이지 관리
이전에 구현했던 헌트모드에 대한 스테이지 정보를 불러오는 기능을 모든 모드에서 사용할 수 있도록 확장했습니다. 킬러모드를 제외한 총 3개의 모드가 있는데 각 모드 별로 플레이에 필요한 정보가 다르기 때문에 각각의 모드에 대한 정보가 다르게 저장되어 사용되도록 만들 생각입니다.
게임 매니저에서 관리를 위해 정의해둔 각 스테이지 데이터를 Base를 만들고 그것을 상속받아 파생시킨 각 모드에 대한 데이터를 모두 만들어 줍니다.
그리고 이전에 스테이지 정보를 불러오기 위해 싱글톤으로 작성한 StageLoader에서 사용할 수 있도록 각 인덱스 별로 스테이지를 불러오는 GetStageData함수를 만들어 줍니다. 이제 각 모드는 모드에 맞게 설정된 인덱스 번호를 바탕으로 데이터 정보를 가져올 수 있습니다.
이렇게 하면 각 모드에 대한 데이터를 저장할 수 있는 공간이 게임 매니저에 생기고, 에디터에서 각 모드에 사용되는 데이터 값을 임의로 설정해 줍니다.
스테이지 클리어 및 점수
이제 스테이지를 클리어 했을 때 클리어 처리와 점수에 대한 구현을 진행해보겠습니다. 먼저 스테이지의 클리어 조건을 충족하면 해당 스테이지를 클리어 처리하고, 클리어 페이지를 띄우면서 점수를 계산하도록 할 것입니다. 헌트모드를 기준으로 먼저 예를 들면, 1스테이지에서 Target Kill Count에 20이 설정되어 있는데, 20마리를 처치하면 클리어 하도록 하기 위한 정보입니다.
그리고 클리어 페이지를 띄울 때, 내부적으로 돌아가는 시간에 따라 점수와 더불어서 직관적으로 클리어 수준을 확인할 수 있는 별을 획득하도록 할 것입니다. 1~3스타로 나뉘며 3스타가 가장 빠르게 클리어했을 시에 획득하는 것입니다.
스테이지의 클리어를 처리하는 StageController를 만들어 내부적으로 돌아가는 시간에 따른 별 획득과 점수 환산을 진행하고 클리어 페이지를 띄우는 기능까지 담당하도록 따로 구현해주었습니다.
실행 결과
헌트모드의 1스테이지에서 플레이를 통해 해당 스테이지를 클리어하면 위 사진과 같이 스테이지 클리어 페이지가 등장하고, 에디터 상에서 내부적으로 돌아가는 시간에 따라 계산된 점수와 별 이미지를 띄워주는 모습을 확인할 수 있습니다.
시작 점수가 60초이고, 3스타 기준 점수는 30초 이하, 2스타는 20초 이하로 설정되어 있는 상태에서 현재 시간이 30초 이하로 내려가지 않았기 때문에 3스타 이미지가 등장했고, 시간에 따라 감소된 점수 52점을 획득한 모습을 볼 수 있습니다.
점수는 위에 게임 매니저에서 정한 100점 기준입니다. 그리고 너무 낮은 점수를 획득하지 않도록 최소 점수 20점을 설정하여 1초만 남기고 클리어 해도 최소 20점은 얻을 수 있도록 해놓은 상태입니다.
<NEXT>
다음에는 스테이지 클리어에 따른 다음 스테이지 해금을 구현해보도록 하겠습니다. 그리고 획득한 점수를 합산하는 부분을 좀 더 보강하도록 하겠습니다. 감사합니다.
'게임 프로그래밍 > 게임개발 중급' 카테고리의 다른 글
게임개발 중급(91) - Monster Killer(53) (0) | 2024.08.11 |
---|---|
게임개발 중급(90) - Monster Killer(52) (0) | 2024.08.09 |
게임개발 중급(88) - Monster Killer(50) (0) | 2024.07.26 |
게임개발 중급(87) - Monster Killer(49) (2) | 2024.07.18 |
게임개발 중급(86) - Monster Killer(48) (2) | 2024.07.15 |