Я новичок в Phaser.io, поэтому приношу извинения, если этот пост не очень хорош.
Как завершить игру через 5 секунд бездействия? Я сделал что-то, но я думаю, что это действительно очень плохо для производительности. Каждый раз, когда вызывается функция обновления, я проверяю, не нажал ли пользователь «вверх, влево, вправо, вниз», и после этого я проверяю, не превысили ли мы время, выполнив (currentTime - beginTime > 5000). Этот код имеет 2 проблемы, которые я пытаюсь запустить: - Производительность действительно плохая, потому что нет необходимости проверять каждый раз, когда мы вызываем функцию обновления. - В моем состоянии я хочу проверить, что «клавиша не была нажата» и для теперь я просто проверяю, не нажал ли пользователь "вверх", "влево", "вправо" или "вниз"
Как это сделать ? Извините за мой английский
var timeBeginning = new Date().getTime();
function update() {
// input to move the ship
if (cursors.up.isDown) {
game.physics.arcade.accelerationFromRotation(ship.rotation, 200, ship.body.acceleration);
} else {
// stopper the acceleration
ship.body.acceleration.set(0);
}
if (cursors.left.isDown) {
ship.body.angularVelocity = -300;
} else if (cursors.right.isDown) {
ship.body.angularVelocity = 300;
} else {
// stop the rotation
ship.body.angularVelocity = 0;
}
if (!cursors.up.isDown && !cursors.left.isDown && !cursors.right.isDown && !cursors.down.isDown) {
if (new Date().getTime() - timeBeginning > 5000) {
end();
}
} else {
timeBeginning = new Date().getTime();
}
}