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

[게임메이커 강좌-기초][GMS2] 가상 키-1-마우스 클릭 또는 화면 터치

by 타락카얀 2021. 1. 16.
728x90

 

 

GAME MAKER 강좌

 

 

KAYAN

 

 

 

 

 

◈ 가상 키

 


가상 키는 모바일과 같은 환경에서 화면에 터치했을 때, 기존의 키보드 키에 대응하여 동일한 효과를
줄 수 있는 기능입니다.
예를 들어, 키보드의 왼쪽 방향키를 누른다고 가정했을 때, 가상 키를 지정한 화면의 지역에 마우스를
클릭(디버그), 또는, 화면을 터치하면, 왼쪽 방향키를 누른 것처럼 처리(해당 키 이벤트를 실행)하는
것이죠.

 

 

 

(▲ 가상 키 사용)

 

이번 강좌에서는 가상 키에 대해 알아보도록 합시다.

 

 

 

 


가상 키의 좌표 및 설정은 기본적으로 Draw Gui 화면에 맞춰집니다.
카메라의 이동과는 상관없이 단순히 화면의 좌표에 가상 키를 생성하기만 하면 됩니다.

가상 키 관련 함수는 아래와 같습니다.

            virtual_key_add(x, y, w, h, keycode)
            virtual_key_delete(index)
            virtual_key_hide(index) : 디버그 전용
            virtual_key_show(index) : 디버그 전용

 

 

 

 

● virtual_key_add(x, y, w, h, keycode)


이 함수는 가상 키를 생성하는데 사용합니다.
Draw Gui 상의 화면의 (x, y) 위치를 지정하고, 가상 키의 w(너비), h(높이) 크기(터치 범위)를 지정합니다.
그리고 키보드 키 이벤트를 실행할 keycode를 지정하면 됩니다.

예)

 



   global.Left = virtual_key_add(32, 32, 64, 64, vk_left);


가상 키 생성함수는 이벤트 지역만 설정할 뿐, 이미지를 표시하는 것이 아닙니다.
생성 위치에는 아무것도 보이지 않기 때문에, 지정한 범위의 크기만한 스프라이트 이미지와 같은
그래픽적 요소를 사용하여, 가상 키 위치에 따로 표시를 해주어야 합니다.

 

 

 

● virtual_key_delete(index)


이 함수는 가상 키를 룸에서 제거하는데 사용합니다.
다만, 가상 키는 룸을 이동하거나 게임을 종료할 때, 자동으로 제거가 됩니다.
즉, 현재 룸에서 가상 키를 제거하고 싶을 때 사용하는 것이죠.

 

예)

 



   virtual_key_delete(global.Left);

 

다음은 가상 키가 올바르게 작동하는지 확인할 수 있는 디버그 전용 함수입니다.

 

 

 


● virtual_key_show(index) : 디버그 전용


함수는 가상 키의 위치와, 지정 범위가 어디인지 [흰색 사각형]으로 표시할 수 있는 함수입니다.

 

 

(▲ 흰색 사각형으로 표시)

 

 

예)

 



   if global.Debug{ virtual_key_show( global.Left ); }
   else{ virtual_key_hide( global.Left ); }


 

 

 

 

 


● virtual_key_hide(index) : 디버그 전용


이 함수는 가상 키를 디버그로 표시한 부분(흰색 사각형)을 다시 숨길 수 있는 기능입니다.

 

예)

 



   if global.Debug{ virtual_key_show( global.Left ); }
   else{ virtual_key_hide( global.Left ); }


 

 

 

 

 

300x250

댓글