我是Phaser.io的新手,所以如果这篇文章不是很好,我会道歉。
如何在5秒钟不活动后结束游戏?我已经做了一些事情,但我认为这对于表现来说真的很糟糕。 每次调用更新功能时,我都会检查用户是否没有按下“向上”,“向左”,“向右”,“向下”和“#34;然后我检查我们是否超过了时间(currentTime - beginningTime> 5000)。 这段代码有2个问题,我试图解雇: - 性能非常差,因为每次调用更新功能时都没有必要检查 - 在我的情况下,我想检查一下"没有钥匙被按下"而现在我只是检查用户是否没有按下" up"," left"," right"或" down"
怎么做? 对不起我的英文
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();
}
}
答案 0 :(得分:0)
您可以通过 game.input.keyboard.addCallbacks
添加全局键盘事件侦听器var timeBeginning = Date.now();
function create(){
function updateTime(){
timeBeginning = Date.now();
}
game.input.keyboard.addCallbacks(game, updateTime, updateTime);
}
function update() {
//your code
if (Date.now() - timeBeginning > 5000) {
end();
}
}