我正在尝试编写自定义游戏引擎,并且我编写了一个函数来检查是否按下了某个键。以下是它的使用方法:
Ball.prototype.update = function(){
keys.onKey("space", function(){
//Key pressed
});
}
我使用update
在Ball
实例上致电requestAnimationFrame()
。问题是当我只按空格键一次时,回调被多次调用。我认为问题是由于requestAnimationFrame被调用的速度比导致多次击键的keylisteners更快。
这是一个JSFiddle来说明情况。注意“空间按下”计数器如何以2s,3s或4s而不是1s升高。