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

时间:2013-12-03 18:41:02

标签: javascript html5

我正在尝试在一个简单的弹跳球示例中实现键输入,但某些功能没有正确响应。例如,如果我尝试停止整个运动它可以工作但键盘精度并不总是相同。我想这可能是由于循环,我的意思是,因为我要求循环中的输入,计算机的答案是不一样的,这取决于我按下键的那一刻。此外,我正在尝试暂停循环设置一个条件来调用自身内部的循环,虽然这在我使用鼠标时工作,但是当我使用键盘时它不会。

你可以看到这里的代码,所涉及的键是'D'开始运动并停止运动,'s'和'a'加速和加速,箭头移动和空间暂停。暂停根本不起作用。它会暂停动画,但不会重新加载。

link to pen

非常感谢。

1 个答案:

答案 0 :(得分:0)

我快速使用你的codepen并通过完全删除logicLoop并检查animationFrame循环中的d键来实现它:

function graphicLoop(){
    context.clearRect(0,0,canvas.width,canvas.height);      // Clean the canvas
    draw();
    requestAnimationFrame(graphicLoop);

    if(keys[68]){ 
        update();
    }
}
graphicLoop();