html5画布上的键输入不总是有响应

Key input on html5 canvas not always responding

本文关键字:响应 输入 html5      更新时间:2024-02-26

我试图在一个简单的弹球示例中实现键输入,但有些功能没有正确响应。例如,如果我试图停止整个动作,它会起作用,但键盘的准确性并不总是一样的。我想这可能是由于循环,我的意思是,因为我在循环中要求输入,计算机的答案不一样,这取决于我按键的那一刻。此外,我试图暂停循环,设置一个条件来回忆循环本身,虽然这在我使用鼠标时有效,但在我使用键盘时无效。

你可以在这里看到代码,涉及的键是"D",用于开始和停止移动,"s"answers"a"用于减速和加速,箭头用于四处移动,空格用于暂停。暂停根本不起作用。它暂停动画,但不重新加载。

链接到笔

非常感谢。

我用你的代码笔进行了一次快速播放,并通过完全删除logicLoop并在animationFrame循环中检查d键来使其工作:

function graphicLoop(){
    context.clearRect(0,0,canvas.width,canvas.height);      // Clean the canvas
    draw();
    requestAnimationFrame(graphicLoop);
    if(keys[68]){ 
        update();
    }
}
graphicLoop();