게임메이커에서 게임패드를 사용하기 위해서는 어떤 함수를 써야 할지 영어를 잘 모르는 사람에겐 

함수 설명들이 무의미 합니다.

심지어 게임메이커 스튜디오에서 F1 도움말을 눌러 검색해보면 수많은 명령어가 나오고 그저 움직이고 

버튼을 눌러 총알을 써보거나 점프한번 해보고 싶을뿐인데 괴로운 마음이 많이 들죠.



어차피 우리가 알고 싶은 것은 움직이고 버튼 누르는 것이기 때문에 , 

많은 함수들중 핵심적인 것 몇가지만 예제 코드를 작성하여 도움을 드리고자 포스팅을 시작하겠습니다.


1. gamepad_axis_value


먼저 움직이기 위해서 필요한 조이스틱을 제어하는 함수입니다.


Objects 폴더에서 제어를 할 오브젝트를 먼저 만들고 create event에서 초기화를 시켜줍니다.

이후 , Step 이벤트에서 아래와 같은 코드를 작성합니다.


gamepad_set_axis_deadzone(0,0.7); //게임 패드 초기화

key_up = (gamepad_axis_value(0,gp_axislv)<0);

key_down = (gamepad_axis_value(0,gp_axislv)>0);

key_left = (gamepad_axis_value(0,gp_axislh)<0);

key_right = (gamepad_axis_value(0,gp_axislh)>0);


주의! = 당연하겠지만 위의 코드는 설정만 했을뿐 이 코드만으로는 움직임을 제어하는 것이 포함되어 있지 않습니다.


위에서 보시면 인풋_레프트라는 변수에 키보드를 눌렀을때 || <-- 그리고 게임패드 값 0이라는 디바이스(쉽게 말해 1P)의 axislh 즉 왼쪽 스틱이 0 보다 

작을때 라는 뜻입니다. (뜻 풀이는 됐다고 하시면...뭐...)


어쨋든 위의 코드는 저의 경우 왼쪽 스틱으로 이동 , 점프는 gp_face1 (엑박용 패드 X 버튼 위치) 로 지정했습니다.

가장 윗쪽 이미지에 보면 원하는 위치의 명령어들이 있으니 그대로 바꿔주면 되며, 진동 기능같은 경우까지 지원합니다.


2. gamepad_set_vibration(디바이스,좌진동,우진동)


도움말에 쓰여진 코드를 보면 ,


if lives = 0
{
       gamepad_set_vibration(0, 1, 1);
       alarm[0] = room_speed / 2;  

}



목숨이 0개가 되면, 게임패드 디바이스 0을 진동시켜라 알람[0]은 룸스피드나누기 2 즉 룸의 스피드를 

60프레임으로 했다면 30이니 0.3 초동안 진동시키고

이 루프에서 빠져나가게 되는 코드인 것 같습니다.

진동을 좌삼삼 우삼삼 이런식으로 난리를 치게 만들기 위해서는 계산이 들어가야 할 것 같은데 

거기까진 아쉽게도 잘 모르겠습니다.(귀찮....)

BELATED ARTICLES

more