我在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);
},
很快就很明显计时事件不是我在这里应该使用的,因为5秒后它会导致整个游戏变得没有反应。
作为一个完全的初学者,我到处寻找实现这些事件的正确方法,但什么也找不到。
下面的教程将创建一个变量,其中包含消息应保留的秒数,然后从
update
调用一个函数,该函数将在达到时间限制时销毁文本。对我来说,这似乎是一个糟糕的方法,因为checking函数从update
被一遍又一遍地调用,尽管它只在前5秒需要。所以我在寻找最好的方法来做这件事,并解释为什么我的代码导致整个游戏停止。
最佳答案
问题是,当你这样称呼:
this.time.events.add(5000, this.instructions.destroy, this);
它调用
destroy
对象上的this
函数,这可能是您的游戏。要解决这个问题,请改为传递
this.instructions
。this.time.events.add(5000, this.instructions.destroy, this.instructions);