如何在单击箭头按钮时更快地移动矩形?

时间:2019-06-06 14:24:24

标签: javascript html animation canvas

如何在单击“箭头”按钮时使矩形像往常一样更快地移动,然后由于我将手指移开,矩形应再次以正常值移动。

这是我的代码(包括动画功能)的样子: 我试图增加x,y值,但立即跳到另一个正方形


1 个答案:

答案 0 :(得分:2)

与其让播放器以60的恒定速度移动,不如让它以可变的速度更改。即

var speed = 60;

...


case 'east':
    gameState.playerPosition.x +=speed;
    break;
case'west':
    gameState.playerPosition.x -=speed;
    break;
case'north':
    gameState.playerPosition.y -=speed;
    break;
case'south':
    gameState.playerPosition.y +=speed;

然后而不是更改keyup上的方向,而是更改它和keydown上的速度。然后,在keyup事件触发时,将速度恢复为正常。

document.addEventListener('keydown', event => {
    speed = 120;
    if(event.key==='ArrowRight'){
        gameState.direction = "east";
    }else if(event.key==='ArrowLeft'){
       gameState.direction = "west"
    }else if(event.key === 'ArrowUp'){
       gameState.direction = "north"
    }else if(event.key === 'ArrowDown'){
       gameState.direction = "south"
    }
    console.log('Key ' + event.key + ' was pressed.'); 
});   

document.addEventListener('keyup', event => {
    speed = 60;
});