我目前正在用香草 JS 构建一个小游戏,但是当我在控制器(底部的规格)上工作时,它错误地映射了按钮。它具有与游戏手柄 API 标准控制器相同数量的输入,以及所有相同的控件,但它不以无法播放的方式匹配。我使用另一个程序(在 API 文档中提供)来测试我的控件,当我发现它不起作用时,我写了这个小曲子:
let gamepad = null;
window.addEventListener("gamepadconnected", function(e) {
console.log(`gamepad: connected`);
gamepad = e.gamepad;
});
function loop(){
if(gamepad){
let buttons = gamepad.buttons;
for(let n = 0; n <= 16; n++){
//16 is the maximum buttons allowed, I checked
if(buttons[n].pressed)
console.log(`Pressed: ${n}`);
}
}
}
setInterval(loop,45);
有关不匹配控件的列表,请参见下表:
指数 | 应该是什么 | 什么是 |
---|---|---|
0 | 一个 | 力量 |
1 | 乙 | 一个 |
2 | X | 乙 |
3 | 是的 | X |
4 | 左保险杠 | 不适用 |
5 | 右保险杠 | Y、左保险杠 |
6 | 左触发器 | 不适用 |
7 | 正确的触发器 | 不适用 |
8 | 选择 | 选择,右保险杠 |
9 | 开始 | 不适用 |
10 | 左摇杆按钮 | 不适用 |
11 | 右摇杆按钮 | 左摇杆按钮 |
12 | dpad_up | dpad_up |
13 | dpad_down | dpad_down |
14 | dpad_left | dpad_left |
15 | dpad_right | dpad_right |
16 | 力量 | 右摇杆按钮,开始 |
如果有人有任何类型的解决方法,我将不胜感激。
注意:我使用的是 M1 macbook pro(最新型号)、带蓝牙和耳机插孔的 Xbox One 控制器,以及 Replit 作为 Firefox 上的 IDE。我很高兴使用 JQuery,但除非绝对必要,否则我不想使用其他外部库(尽管请随意建议它们!)。