我在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秒内需要。
所以我正在寻找最佳方法的帮助,并解释为什么我的代码导致整个游戏停止。
答案 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);