我尝试使用一些代码在画布上移动我的角色,但是由于某种原因,这种移动非常粗糙。当我按下移动键时,角色移动了一点,然后开始正常移动。有什么方法可以使初始按键更加流畅?这是我正在使用的代码:
var posX = 0;
var posY = 240;
var velX = 0;
var velY = 3;
document.addEventListener("keydown", function(event) {
if (event.keyCode == "68") {
velX = 3;
posX += velX;
}else if (event.keyCode == "65") {
velX = 3;
posX -= velX;
}
});
这是一个现场演示: https://codepen.io/Twickz/pen/WmPWae
此外,velX和velY是速度,而posX和posY是角色的位置。
答案 0 :(得分:0)
我认为键盘缓冲区有问题。
绕过它的一种解决方案是:keydown事件仅开始移动,然后继续在循环(setInterval
或requestAnimationFrame
)内移动角色,直到发生keyup。
类似这样的东西(动画可能是粗糙的,但可以用作PoC): https://codepen.io/anon/pen/VRgNrQ
答案 1 :(得分:-3)
您是否尝试过按键操作...按键按下是有害的