본문 바로가기
GameMaker강좌[GM8]/슈팅게임강좌

[게임메이커강좌-슈팅]슈팅게임 만들기-9-하이스코어 등록

by 타락카얀 2013. 4. 11.
728x90




이번엔 하이스코어를 등록하는 방법에 대해 알아봅시다.


◈하이스코어 등록




게임메이커의 하이스코어의 등록창은 아래와 같은 모습을 하고 있습니다.



(▲하이스코어 창)


게임메이커의 하이스코어 액션은 변수 'score'와 연동됩니다.

하이스코어 창을 띄울려면 조건이 있어야겠지요.
     1.플레이어의 hp가 0이 되었을 때.
     2.게임을 모두 클리어 하고 종료되었을 때.

먼저 스테이지에 배치되는 오브젝트를 선택하고 변수하나를 만듭니다.



(▲게임오버 스위치로 쓸 변수 생성)


Control->Variables->Set Variable액션을 삽입하고


     variable : _gameover
     value : 0


그리고 Step이벤트에 게임오버 이벤트를 작성합니다.



(▲플레이어 hp가 0일 경우)


플레이어 hp가 0일 경우의 조건문으로 Control->Variables->Test Variable액션을 삽입하고


     variable : global.hp
     value : 0
     operation : larger than
     [V] NOT
     //조건문을 global.hp가 0과 같은 것이 아닌, 0보다 크지 않을 경우를 조건으로 하는 이유는
     데미지가 중복처리되어 global.hp가 0보다 더 작을 경우(음수)가 생길 수도 있기 때문입니다.


다음은 게임오버 스위치의 조건문을 추가합니다.



(▲이벤트가 두번 실행되는 것을 방지하기 위한 조건)


Control->Variables->Test Variable액션을 삽입하고


     variable : _gameover
     value : 0
     operation : equal to


그리고 하이스코어 창을 띄우기전에 약간의 딜레이 이벤트를 작성해봅시다.



(▲알람 이벤트 추가)


Main2->Timing->Set Alarm액션을 삽입하고


     number of steps : 180  //(스텝/룸속도)초
     in alarm no : Alarm 0


다음은 이벤트가 두번 실행되는 것을 방지하기 위해 게임오버용 스위치 변수의 값을 변경하여 닫습니다.



(▲변수 값을 변경하여 조건 이벤트를 닫음)


Control->Variables->Set Variable액션을 삽입하고

     variable : _gameover
     value : 1


그리고 이벤트에 Alarm 0이벤트를 생성하고



(▲하이스코어 액션을 삽입)


Score->Score->Show Highscore액션을 삽입합니다.

     background : 배경이미지를 변경할 수 있습니다.
     border : 창의 테두리를 표시할지를 정할 수 있습니다.
     new color : 새로운 점수의 색입니다.
     other color : 새로운 점수 이외의 색입니다.
     font : 현재 사용하고 있는 시스템의 폰트로 지정할 수 있습니다.


하이스코어 창을 닫았을 때 이벤트를 추가합니다.



(▲하이스코어 창을 닫으면 게임을 재시작)


Main2->Game->Restart Game 액션을 사용하면 게임을 재시작 하게 됩니다.
또는 End Game을 사용하면 게임을 종료할 수도 있습니다.





◈게임 화면에 하이스코어 표시



최고 점수를 화면에 표시할 수도 있습니다.



(▲최고 점수를 화면에 표시)


최고 점수가 등록 되었을 때 게임의 우측 상단에 최고 점수를 표시해봅시다.



(▲최고 점수를 화면에 표시)


일단 조건문으로 Control->Variables->Test Variable액션을 삽입하고


     variable : highscore_value(1) //highscore_value(순위)
     value : 0
     operation : larger than


다음은 폰트와 색을 설정해주고



(▲1위의 점수를 표시)


Control->Variables->Draw Variable액션을 삽입합니다


     variable : 'TOP-'+string(highscore_value(1))
     //문자열과 숫자를 합할 때는, 먼저 숫자를 string을 통하여 문자열로 만들어야 함.

     x : 640-32
     y : 32


이렇게 하면 우측 상단에 최고 점수를 표시하게 됩니다.




-------응용예제------


shooter-1945-9.gmk


shooter-1945-9-추가.gmk

300x250

댓글