【发布时间】:2019-05-27 18:43:49
【问题描述】:
好吧,当您按住键盘上的某个键时,第一次开火后会有 1 秒的延迟。
您可以继续打开记事本并按住一个键(例如“x”),您会在第一次火灾后看到有延迟。
但是,我正在尝试使用 JavaScript 在 HTML5 Canvas 中开发游戏,并且 1 秒的延迟非常烦人,此外,它还会停止玩家行走动画..
那么我怎样才能删除 JavaScript 中令人讨厌的延迟(没有 jQuery!)?
我的 keydown 事件在这种模式下工作 -
document.onkeydown = getKey;
function getKey(e) {
switch(e.keyCode) {
case 38: // UP
Player.PositionY--;
break;
case 39: // RIGHT
Player.PositionX++;
break;
case 40: // DOWN
Player.PositionY++;
break;
case 37: // LEFT
Player.PositionX--;
break;
}
}
【问题讨论】:
-
有一个简单的解决方案:不要依赖操作系统重复,滚动您自己的事件循环来轮询您的键盘类(可选:仅当发生某些事情时)。
-
@JanDvorak 是的,谢谢 :)
标签: javascript html5-canvas dom-events