Геймпад XBOX One обнаружен в слоте 0, но вход в Game Maker Studio 2 не обнаружен - PullRequest
0 голосов
/ 09 февраля 2020

Я следую по этому курсу удэми и в разделе, где мы реализуем очень простую поддержку 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, которого у меня нет.

Пожалуйста, пришлите помощь!

1 Ответ

1 голос
/ 10 февраля 2020

В прошлом месяце я пытался реализовать поддержку Controller с помощью XBox One Controller, и у меня все получилось просто отлично. Также с использованием gamepad_button_check() и gamepad_axis_value() и других переменных, которые я использовал по этой ссылке: https://docs2.yoyogames.com/source/_build/3_scripting/4_gml_reference/controls/gamepad%20input/index.html

Я использую и gamepad_is_supported и gamepad_is_connected в геймпаде код, чтобы убедиться, что он нашел геймпад.

Должна быть возможность работы с контроллером XBox One.
Так что, возможно, проблема в чем-то нестандартном. (Например, вы проверили, установлен ли контроллер на вашем P C? Или это соединение только в событии Create, и что оно не обновляется, когда ваш контроллер подключен?)

...