모바일 OS(안드로이드, IOS, Windows Phone)는 마우스가 아닌 터치를 기반으로 동작하기 때문에 오브젝트를 움직이려면 가상의 키패드가 필요합니다.
이전 강좌에서 멀티 터치 구현에 대해 알아보았지만, 다섯 가지나 되는 터치의 경우의 수로 키패드를 만들기에는 매우 복잡합니다.
그러나 다행히도 게임메이커: 스튜디오(GameMaker: Studio)에서는 가상 키(Virtual Keys) 함수들을 제공합니다.
여러분들은 이 함수들을 가지고 가상 키패드를 정말 쉽게 만드실 수 있습니다.
겜스에서는 다음과 같은 네 가지의 가상 키 함수를 제공합니다.
virtual_key_add
virtual_key_show
virtual_key_hide
virtual_key_delete
제가 지금부터 만드는 가상 키패드는 패드들의 이벤트가 거의 유사하므로 페런츠를 사용할 것입니다.
페런츠 오브젝트를 만들고, 키패드들의 페런츠를 설정해주세요.
Create 이벤트입니다.
virtual_key_add 함수는 가상 키패드를 만드는 함수입니다.
당신은 이 함수에서 키패드의 사각형 영역을 지정할 수가 있습니다.
키패드의 영역을 지정할 때 주의할 점은, virtual_key_add 함수는 화면상의 위치(GUI)를 기준으로 한다는 것입니다.
룸의 위치가 아니라 화면의 위치를 설정하게 되므로 키패드는 뷰를 이동할지라도 화면상에 그대로 떠 있게 됩니다.
또한, 절대로 착각하시면 안 되는 게 이 함수는 키패드를 설정한 오브젝트와 연동되지 않습니다.
당신이 지정한 사각형 영역에서 그저 터치를 기다릴 뿐입니다.
하지만 터치를 기다리기는 하는데, 게임을 플레이하는 플레이어가 어느 곳을 터치할지 모르니까 그 위치에 스프라이트를 드로우 해줘야겠죠?
"image_alpha = 0" 을 한 이유는 Draw GUI 이벤트로 키패드를 그릴 것이기 때문에 겜스 기본 이미지 드로우가 필요없어서이고요.
"display_set_gui_size(room_width, room_height)" 를 한 이유는 모바일에서 GUI 스케일을 재설정하기 위함입니다.
이제 Draw GUI 이벤트에서 키패드 스프라이트를 그리시면 됩니다.
참고로 키패드 함수는 모바일 기기에서만 적용되며, 마우스를 기반으로 하는 기기에서는 적용되지 않습니다.