Вместо того, чтобы игрок двигался с постоянной скоростью 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;
});