XBOX 在插槽 0 中检测到一个游戏手柄,但在 Game Maker Studio 2 中未检测到输入

Posted

技术标签:

【中文标题】XBOX 在插槽 0 中检测到一个游戏手柄,但在 Game Maker Studio 2 中未检测到输入【英文标题】:XBOX One gamepad detected in slot 0 but no input detected in Game Maker Studio 2 【发布时间】:2020-02-09 13:57:11 【问题描述】:

我正在关注this udemy course,在我们实现非常简单的游戏手柄支持的部分中,我无法让我的 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 控制器,但我遇到了同样的问题。当我尝试使用插槽 4 上的 Mayflash GC 控制器适配器连接我的 gamecube 控制器时,它可以工作。我是否缺少有关 XBOX One 控制器的某些特定内容?我认为老师在课程中使用了 XBOX 360 控制器,而我没有。

请发送帮助!

【问题讨论】:

【参考方案1】:

我上个月尝试使用 Xbox One 控制器来实现对控制器的支持,我让它工作得很好。还使用 gamepad_button_check()gamepad_axis_value() 以及我在此链接中使用的其他变量:https://docs2.yoyogames.com/source/_build/3_scripting/4_gml_reference/controls/gamepad%20input/index.html

我在游戏手柄代码中同时使用gamepad_is_supportedgamepad_is_connected 以确保它找到了游戏手柄。

应该可以使用 Xbox One 控制器。 所以也许问题是开箱即用的。 (例如,您是否检查过控制器是否安装在您的 PC 上?或者连接仅在创建事件中,并且在插入控制器时它不会更新?)

【讨论】:

以上是关于XBOX 在插槽 0 中检测到一个游戏手柄,但在 Game Maker Studio 2 中未检测到输入的主要内容,如果未能解决你的问题,请参考以下文章

在 Xbox 上的 UWP 应用中模拟游戏手柄输入

如何用Xbox One手柄在PC上玩游戏

如何用Xbox One手柄在PC上玩游戏

如何使用 pyusb 控制 Xbox 360 游戏手柄上的 LED

xbox360手柄驱动win10怎么设置手柄

xbox one手柄怎么连接win10