Я следую по этому курсу удэми и в разделе, где мы реализуем очень простую поддержку c геймпада, я не могу заставить работать свой контроллер XBOX One, как показано в лекции. Вот скрипт get_input () с поддержкой клавиатуры (которая отлично работает, когда не подключен контроллер) и поддержкой геймпада.
//keyboard input
left = keyboard_check(vk_left);
right = keyboard_check(vk_right);
up = keyboard_check(vk_up);
down = keyboard_check(vk_down);
attack = keyboard_check_pressed(vk_shift);
jump = keyboard_check_pressed(vk_space);
jump_held = keyboard_check(vk_space);
block = keyboard_check(ord("Z"));
//controller input
var _dev = 0;
if gamepad_is_connected(_dev) {
var _deadzone = 0.3;
left = gamepad_axis_value(_dev, gp_axislh) < -_deadzone;
right = gamepad_axis_value(_dev, gp_axislh) > _deadzone;
up = gamepad_axis_value(_dev, gp_axislv) < -_deadzone;
down = gamepad_axis_value(_dev, gp_axislv) > _deadzone;
attack = gamepad_button_check_pressed(_dev, gp_face2);
jump = gamepad_button_check_pressed(_dev, gp_face1);
jump_held = gamepad_button_check(_dev, gp_face1);
block = gamepad_button_check(_dev, gp_shoulderr);
}
Я знаю, что мой геймпад обнаружен, потому что когда я запускаю этот код:
var numPads= gamepad_get_device_count();
for(var i = 0; i < numPads; i++;)
{
if(gamepad_is_connected(i)) show_message(string(i) + ": " + gamepad_get_description(i));
}
Я получаю сообщение «0: XInput STANDARD GAMEPAD». Однако когда я запускаю игру и пытаюсь использовать кнопки или джойстик, ничего не происходит. Я пытался использовать два разных контроллера XBOX One, но у меня та же проблема. Когда я пытаюсь подключить контроллер игрового куба с помощью адаптера контроллера Mayfla sh G C в слоте 4, он работает. Я пропускаю что-то конкретное c о контроллерах XBOX One? Я думаю, что в курсе учитель использует контроллер XBOX 360, которого у меня нет.
Пожалуйста, пришлите помощь!