我使用以下代码(这是一个简化的代码片段,以使其更具可读性):
var player;
var box_tnt;
function create (){
this.physics.add.collider(player, box_tnt, hitTnt, null, this);
}
//the function hitTnt stop the game because the player died
function hitTnt (player, boxes){
this.physics.pause();
player.setTint(0xff0000);
player.anims.play('default');
gameOver = true;
textGameOver.setText('GAME OVER');
}
当玩家击中炸弹时:玩家死亡;比赛结束
当玩家击中炸弹时:炸弹等待3次,然后爆炸!如果球员太近,他就会死。但是,即使在论坛中阅读了很多例子,我仍然很费力地使用计时器。我是Phaser的新手,所以到目前为止我还没有成功。
任何帮助将不胜感激,谢谢你提前!
假设您正在使用Phaser 3,这些是您可以使用计时器的方法。
delayedCall(delay, callback, args, callbackScope)
所以,你会做这样的事情。
this.time.delayedCall(2000, onEvent, null, this);
addEvent(config)
Docs for config
this.time.addEvent({ delay: 2000, callback: onEvent, callbackScope: this });
在docs here中找到这些方法。
查找计时器事件here的示例。
你能做的其他事情就是如果你有任何一个播放3秒的补间(如果你正在补间炸弹或动画3秒钟)。你可以附上onComplete
回调。因此,在Tween结束后,onComplete
回调将被执行。
如果你想将qazxsw poi逻辑的执行延迟3秒,你可以将它包装在qazxsw poi调用中:
hitTnt()