我正在编写一个小 javascript 游戏并尝试使其与游戏手柄一起使用。游戏手柄可以工作(至少在 linux 上)。我写了这段代码:
var gamePad;
var checkForGamepad;
function startPolling() {
checkForGamepad= setInterval(function () {
gamePad= navigator.webkitGetGamepads && navigator.webkitGetGamepads()[0]
},20)}
function stopPolling(){
clearInterval(checkForGamepad);
checkForGamepad=null;
}
这是为了开始检查是否连接了游戏控制器,我也可以停止它(例如,当我在菜单中时)。但现在我想写一个事件记录器。我已经为键盘写了一个,但这很容易,因为你有一个“keyup”事件。有人知道如何为游戏手柄编写事件记录器吗?
我的键盘事件记录器如下所示:
function gameNavigationKey(evt){
switch (evt.keyCode){
case 32: // spacebar was pressed
//change the gravity
// do some other stuff
break;
.
.
.
}
在我启动游戏循环()时的代码中,我还调用了 window.addEventListener('keyup',gameNavigationKey,true)
所以我希望我的事件记录器与我的游戏手柄基本相同。我知道我可以使用 gamePad.buttons[0] 读取在游戏板上按下的键的值,未按下时返回 0 按下时返回 1。所以我想我需要记住我的钥匙以前的状态,但仍然不知道如何开始。有人可以帮我创建这个事件记录器吗?提前致谢