如何在单击“箭头”按钮时使矩形像往常一样更快地移动,然后由于我将手指移开,矩形应再次以正常值移动。
这是我的代码(包括动画功能)的样子: 我试图增加x,y值,但立即跳到另一个正方形
答案 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;
});