Одновременное исполнение двух событий в JS
Делаю игру для курсового проекта. Суть игры погрузчик ездит и собирает кубики. Проблема в том, что погрузчик либо поворачивает либо ездит прямо. Одновременно поворачивать и ехать реализовать у меня не получается. Может кто знает как реализовать: при нажатой одной клавише реагировать на нажатие другой, не прекращая обрабатывать событие первой клавиши.
document.addEventListener('keydown', () => {
if (event.code === 'ArrowUp') {
this.moveAngle(-5);
}
if (event.code === 'ArrowDown')
this.moveAngle(5);
if (event.code === 'ArrowLeft') {
this.turn(-5);
}
if (event.code === 'ArrowRight') {
this.turn(5);
}
});
moveAngle(a) {
this.loader.x += a * Math.cos(this.degrees * Math.PI / 180);
this.loader.y += a * Math.sin(this.degrees * Math.PI / 180);
}
turn(a) {
if (0 !=
a) {
this.degrees %= 360;
this.degrees += a;
}
}
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Схематично
document.addEventListener('keydown', () => {
var moveAngle = 0;
if (event.code === 'ArrowUp') {
moveAngle -= 5;
}
if (event.code === 'ArrowDown')
moveAngle += 5;
var turn = 0;
if (event.code === 'ArrowLeft') {
turn -= 5;
}
if (event.code === 'ArrowRight') {
turn += 5;
}
this.turn(turn);
this.moveAngle(moveAngle);
});