【发布时间】:2017-11-02 14:16:24
【问题描述】:
我正在尝试用 HTML5 创建一个游戏,但我已经到了需要启用键盘输入的地步。
这是我的代码:
window.addEventListener('keydown', function(e) {
let key = e.keyCode;
console.log(key);
if (key == 37) {
canvas.player.x -= 5;
}
if (key == 38) {
canvas.player.y -= 5;
}
if (key == 39) {
canvas.player.x += 5;
}
if (key == 40) {
canvas.player.y += 5;
}
}, false);
其中canvas 是画布对象,canvas.player 是播放器对象。它有效,但不是很好......假设我按下(并按住)右箭头键(39),而不是按下向下箭头键(40),自从我们上次以来,玩家不再向右移动按向下箭头键。工作正常。直到我在按下右箭头键的同时释放下箭头键。所以我从来没有松开右箭头键。然后播放器停止并且浏览器似乎不理解我正在按右箭头键。
您可以在 this fiddle 的控制台日志中轻松看到这一点。
有人有解决这个问题的方法吗?无论如何检测键码的方法?
【问题讨论】:
标签: javascript canvas keyboard addeventlistener keydown