Phaser:在固定的秒数后销毁文本

时间:2014-09-05 08:32:46

标签: javascript html5 phaser-framework

我在Phaser中使用以下功能来创建在前5秒后消失的浮动指令。从create函数内部调用此函数。

setupText: function () {
  this.instructions = this.add.text( 510, 600, 
    'Use Arrow Keys to Move, Press Z to Fire\nClicking does both', 
    {font: '20px monospace', fill: '#fff', align: 'center'}
  );
  this.instructions.anchor.setTo(0.5, 0.5);
  this.time.events.add(5000, this.instructions.destroy, this);
},

很明显,定时事件不是我应该在这里使用的,因为五秒后它会导致整个游戏无法应对。

作为一个完整的初学者,我四处寻找实现此类事件的正确方法,但我找不到任何东西。

下面的教程创建了一个变量,其中包含消息应保留的秒数,然后从update调用一个函数,该函数在达到时间限制时销毁文本。这对我来说似乎是一种糟糕的方法,因为检查功能是从update反复调用的,即使它只在前5秒内需要。

所以我正在寻找最佳方法的帮助,并解释为什么我的代码导致整个游戏停止。

1 个答案:

答案 0 :(得分:2)

问题在于,当你这样称呼时:

this.time.events.add(5000, this.instructions.destroy, this);

它会调用destroy对象上的this函数,这可能就是你的游戏。

要解决此问题,请改为通过this.instructions

this.time.events.add(5000, this.instructions.destroy, this.instructions);