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

问题描述 投票:-1回答:2

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

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的新手,所以到目前为止我还没有成功。

任何帮助将不胜感激,谢谢你提前!

javascript timer phaser-framework game-development
2个回答
3
投票

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

  1. delayedCall方法,更短。

delayedCall(delay, callback, args, callbackScope)

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

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

  1. addEvent方法

addEvent(config) Docs for config

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

在docs here中找到这些方法。

查找计时器事件here的示例。


你能做的其他事情就是如果你有任何一个播放3秒的补间(如果你正在补间炸弹或动画3秒钟)。你可以附上onComplete回调。因此,在Tween结束后,onComplete回调将被执行。


1
投票

如果你想将qazxsw poi逻辑的执行延迟3秒,你可以将它包装在qazxsw poi调用中:

hitTnt()
© www.soinside.com 2019 - 2024. All rights reserved.