2

我在 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 秒。

因此,我正在寻求最佳方法的帮助,以及为什么我的代码导致整个游戏停止的原因。

4

1 回答 1

2

问题是当你调用这个时:

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

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

要解决这个问题,请this.instructions改为通过。

this.time.events.add(5000, this.instructions.destroy, this.instructions);
于 2014-09-05T08:44:04.190 回答