Phaser:如何使用从 0 到 3 的简单计时器

Ced*_*Ced 1 javascript timer game-development phaser-framework

我正在使用以下代码(这是一个简化的代码片段,以便使其更具可读性)

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');
}
Run Code Online (Sandbox Code Playgroud)
  • 实际表现:

当玩家击中炸弹时:玩家死亡;游戏结束

  • 期望的行为举止:

当玩家击中炸弹时:炸弹等待3秒然后爆炸!如果玩家距离太近,他就会死亡。但即使在阅读了论坛上的很多示例之后,我仍然很难使用计时器。我是 Phaser 的新手,所以到目前为止我还没有成功。

任何帮助将不胜感激,预先感谢您!

小智 5

假设您使用的是 Phaser 3,这些是您可以使用计时器的方法。

  1. DelayedCall 方法,该方法更短。

delayedCall(delay, callback, args, callbackScope)

所以,你会做这样的事情。

this.time.delayedCall(2000, onEvent, null, this);

  1. 添加事件方法

addEvent(config) 配置文档

this.time.addEvent({ delay: 2000, callback: onEvent, callbackScope: this });

在此处的文档中找到这些方法。

在此处查找计时器事件的示例。


您可以做的其他事情是,如果您有任何播放 3 秒的补间(如果您正在补间炸弹或将其动画化 3 秒)。您可以将onComplete回调附加到它。因此,在 Tween 结束后,onComplete回调将被执行。