为什么我的角色动作感觉不正确?

时间:2019-03-24 19:17:53

标签: javascript html5-canvas

我尝试使用一些代码在画布上移动我的角色,但是由于某种原因,这种移动非常粗糙。当我按下移动键时,角色移动了一点,然后开始正常移动。有什么方法可以使初始按键更加流畅?这是我正在使用的代码:

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是角色的位置。

2 个答案:

答案 0 :(得分:0)

我认为键盘缓冲区有问题。

绕过它的一种解决方案是:keydown事件仅开始移动,然后继续在循环(setIntervalrequestAnimationFrame)内移动角色,直到发生keyup。

类似这样的东西(动画可能是粗糙的,但可以用作PoC): https://codepen.io/anon/pen/VRgNrQ

答案 1 :(得分:-3)

您是否尝试过按键操作...按键按下是有害的