게임패드 축 값 가져오기
gamepad_axis_value
함수는 특정 게임패드 슬롯에서 다양한 축의 값을 가져오는 데 사용됩니다. 이 함수는 확인할 게임패드 슬롯 인덱스와 축 인덱스 상수(여기에서 나열된 대로) 또는 0과 gamepad_axis_count() - 1
사이의 정수 값을 인수로 받습니다. 반환되는 값은 사용 가능한 수평 및 수직 축 각각에 대해 -1과 1 사이의 값입니다.
반환되는 값은 축의 데드존 값(함수 gamepad_set_axis_deadzone()
을 사용하여 설정된 값)을 고려하여 정규화되므로 항상 -1과 0, 0과 1 사이의 값이 됩니다. 예를 들어, 데드존을 0.2로 설정하면 스틱을 오른쪽으로 밀었을 때 원시 축 값이 0.2를 초과해야만 0에서 1 사이의 값을 반환합니다. 즉, 원시 값이 0.2일 때 반환 값은 0이 되고, 원시 값이 0.5일 때 반환 값은 0.375가 되며, 원시 값이 0.9일 때 반환 값은 0.875가 됩니다.
문법
gamepad_axis_value(device, axisIndex);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
device | Real | 확인할 게임패드 장치 "슬롯" |
axisIndex | Gamepad Axis Constant | 확인할 축 인덱스 (상수 목록 참조) |
반환 값
- Real
예제
var haxis = gamepad_axis_value(0, gp_axislh);
var vaxis = gamepad_axis_value(0, gp_axislv);
direction = point_direction(0, 0, haxis, vaxis);
speed = point_distance(0, 0, haxis, vaxis) * 5;
위 코드는 슬롯 0에 연결된 게임패드의 왼쪽 아날로그 컨트롤러의 반환 값을 기반으로 인스턴스의 속도와 방향을 설정합니다.
활용 예제
- 게임 캐릭터 이동
var haxis = gamepad_axis_value(0, gp_axislh);
var vaxis = gamepad_axis_value(0, gp_axislv);
x += haxis * speed;
y += vaxis * speed;
- 카메라 이동
var haxis = gamepad_axis_value(0, gp_axislh);
var vaxis = gamepad_axis_value(0, gp_axislv);
camera_x += haxis * camera_speed;
camera_y += vaxis * camera_speed;
- 비행기 조종
var haxis = gamepad_axis_value(0, gp_axislh);
var vaxis = gamepad_axis_value(0, gp_axislv);
angle += haxis * turn_speed;
altitude += vaxis * climb_speed;
- 스포츠 게임에서의 공 조작
var haxis = gamepad_axis_value(0, gp_axislh);
var vaxis = gamepad_axis_value(0, gp_axislv);
ball.x += haxis * kick_strength;
ball.y += vaxis * kick_strength;
- 퍼즐 게임에서의 조작
var haxis = gamepad_axis_value(0, gp_axislh);
var vaxis = gamepad_axis_value(0, gp_axislv);
piece.x += haxis * move_speed;
piece.y += vaxis * move_speed;
이와 같은 방식으로 gamepad_axis_value
함수를 활용하여 다양한 게임 내 조작을 구현할 수 있습니다.