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_supported
和gamepad_is_connected
以确保它找到了游戏手柄。
应该可以使用 Xbox One 控制器。 所以也许问题是开箱即用的。 (例如,您是否检查过控制器是否安装在您的 PC 上?或者连接仅在创建事件中,并且在插入控制器时它不会更新?)
【讨论】:
以上是关于XBOX 在插槽 0 中检测到一个游戏手柄,但在 Game Maker Studio 2 中未检测到输入的主要内容,如果未能解决你的问题,请参考以下文章