본문 바로가기
GameMaker강좌[GM8]/기초강좌

[게임메이커강좌-기초]메시지 팝업

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



GAME MAKER 강좌



KAYAN





게임메이커에서는 특정 이벤트에서 간단한 메시지팝업을 띄울 수 있습니다.
이러한 메시지 팝업은 보통 에러 확인, 디버그, 또는 문구를 띄우고 싶을 때 주로 사용합니다.



(▲기본적인 메시지)


위와 같은 메시지 팝업에 대해 알아보도록 합시다.












◈메시지 팝업



일반 적인 메시지는 Main2InfoDisplay Message 액션으로 띄울 수 있습니다.



(▲메시지 액션)


이 액션은 사용하고 싶은 이벤트 라인에 끌어다 놓고, 문구는 액션의 Message에 넣고 싶은 문구를 입력하면 끝입니다.



(▲메시지 사용)


사용법이 간단하죠.
실제 표시되는 메시지는 아래와 같이 표시됩니다.



(▲실제 게임에 표시되는 메시지)


여기서 OK버튼을 누르면 메시지 팝업은 닫히게 됩니다.
주의할것은 메시지팝업이 이벤트를 닫을 수 있는 조건에서 실행되어야 한다는 것입니다.
예를 들면 Step 이벤트에 아무런 장치 없이 계속 반복 실행되게 된다면, 메시지 이벤트는 계속 반복 실행되어,

끝날 수 없는 메시지 팝업을 계속 닫아야할 것입니다.
결국 게임진행이 안되겠지요.
그렇기 때문에 스위치 형식으로 조건문을 사용해 최소 1번씩만 실행되게하거나, 이벤트가 끝날 수 있도록

이벤트를 작성해야합니다.

또한 메시지를 조건문으로 사용할 수도 있어요.
예를 들어 확인을 누르면 이벤트를 실행하고, 취소를 누르면 이벤트를 실행시키지 않고, 다른 이벤트를 실행시킬

수 있지요.
그것은 ControlQuestionsCheck Question 액션으로 사용할 수 있습니다.



(▲질문형 메시지 액션)


일반적인 조건문과 사용법은 같습니다. 이 액션 자체가 조건문이기 때문이니까요.
Display Message 액션과 마찬가지로 Question에 문구를 넣고, 조건문을 구성하시면 됩니다.



(▲메시지 사용)


만약 Not을 체크하면 반대의 이벤트가 실행됩니다. 즉, No쪽이 조건문의 이벤트를 실행한다는 것이죠.



(▲사용예)


이렇게 하면 Yes를 선택했을때 게임을 종료하고, No를 선택하면 다음 룸으로 이동하게 됩니다.

(Not을 설정했다면 반대의 결과로 실행됩니다. Yes가 다음룸으로, No가 게임종료가 되어버립니다.)



(▲실제 게임에 표시되는 메시지)


코드로는

     show_message(str) : Display Message 액션과 같음
     show_question(str) : Check Question 액션과 같음

이 함수를 사용하면 됩니다.






◈메시지 팝업의 속성 변경



뭔가 밋밋한 메시지창!
하지만 이것의 속성을 변경할 수도 있습니다.
예를 들면 표시되는 글자를 변경한다던가, 아니면 메시지창의 배경을 변경한다던가 말이지요.
이것은 액션으로는 없기 때문에, 코드로 작성해야 합니다.
메시지 창의 크기는

     message_size(w,h)

w는 넓이 h는 높이를 지정하면 사용하면 됩니다.
문구의 텍스트 역시 변경할 수 있는데,

     message_text_font(name,size,color,style)

이것을 사용하면 됩니다.
name은 게임메이커의 폰트가 아니라, 시스템에 설치된 폰트 이름을 지정하세요.
size에 글자크기, color는 게임메이커에서 사용하는 컬러를 지정해요.
style에는 0=보통, 1=굵게, 2=기울림꼴, 그리고 3=굵게+기울림꼴입니다.

메시지의 배경 변경은

     message_background(back)

back에 배경 이미지를 지정하시면 됩니다.
message_size로 크기를 지정하지 않으면 게임메이커 기본크기(320 X 86)로 표시됩니다.

버튼 역시 변경 가능합니다.
버튼의 폰트는

     message_button_font(name,size,color,style)

함수로 사용하시면 됩니다. name은 시스템에 설치된 폰트여야해요. 그리고 버튼은 스프라이트로

구성해야 합니다.
서브이미지는 총 3장으로 0번이 평상시 이미지, 1번이 마우스 포인터 버튼에 위치했을 때,

2번이 버튼을 눌렀을 때로 구성하고,

     message_button(spr)

함수로 스프라이트를 지정하여 사용합니다.

그리고 이 메시지 창을 게임메이커로 부터 분리된 메시지 창으로 만들 수 있는데

     message_caption(show,str)

show에 1을 지정하여 사용하면 분리되며 메시지 창의 캡션에 글자를 표시할 수도 있습니다.

또한 메시지 창을 투명하게 만들 수도 있는데, 그것은

     message_alpha(alpha)

함수로 사용하면 됩니다.

메시지 확장 함수를 사용하면 3개의 선택지로 나눌 수도 있습니다.

     show_message_ext(str,but1,but2,but3)

[ESC]키를 누르면 취소가 되는데, 이때는 0, but1버튼을 선택하면 1, but3을 선택하면2, but3을 선택하면 3이

반환됩니다.



     ★분기별 사용예


     _message=show_message_ext("선택하세욧!","but1","but2","but3");

     if _message=0{ 이벤트 }//취소
     if _message=1{ 이벤트 }//선택1
     if _message=2{ 이벤트 }//선택2
     if _message=3{ 이벤트 }//선택3



만약 버튼을 비우고자 할 때, 해당 인자에 글자를 넣지 않고, 기호 "" 또는 '' 만 넣으시면 그 버튼은

비워지게 됩니다.



(▲선택지별 메시지 팝업. 골라먹는 재미!)


선택지별로 이벤트를 구성하고자 할때 유용합니다.

    

     ★ 메시지 속성 사용예


     message_text_font('맑은 고딕',10,c_red,0);//폰트와 색
     message_size(320,240);//메시지 박스의 크기

    
     message_background(back_message);//메시지 배경(배경 이미지 지정)
     message_button(spr_message_button);//메시지의 버튼(스프라이트 이미지 지정)

    
     message_caption(1,'Message!!!');//메시지 캡션
     message_button_font('맑은 고딕',10,c_black,0);//메시지 버튼 폰트




(▲메시지 속성이 적용된 메시지)


참고로 이 메시지 기능들은 윈도우 전용으로 게임메이커 스튜디오에선 멀티 플랫폼 지원으로 인해

기본적인 메시지창을 띄우는 것만 가능하고, 대다수 기능이 폐기되어 사용할 수 없습니다.

메시지 속성들은 8.x버전에서만 모두 사용가능해요.
참고하세요.






300x250

댓글