libGDX粒子发射器的持续时间无限

6

我一直在试图使用libGDX创建一些火焰粒子发射器。

我下载了一个例子(http://pastebin.com/cNWs0tt1#)。它看起来不错,但最终会结束(火灭了),然后重新开始。我在文件中看到它说持续时间是60000ms。所以他们依赖于放置一个很高的数字。

那太糟糕了。我尝试将持续时间设置为0,当然不起作用,因为它只是一遍又一遍地死亡。

那么我该如何制作一个持续时间无限的粒子发射器呢?


1
你可以设置一个标志,告诉它要连续运行,然后它将在60000毫秒后重复,但你可能会看到它在恢复正常之前短暂地关闭。我认为最简单的解决方案是将时间增加到极高的值,例如INTEGER.MAX_VALUE。这很无聊,但我不确定是否有其他解决方案。我无法创建任何永久持续且始终相同的效果。 - noone
2个回答

7
您可以将 continous 标志设置为 true,效果会一遍又一遍地重复播放。
在编辑器中: set particle effect to continous 或者在源文件中:
- Options - 
attached: false
continuous: true <----------------------------
aligned: false
additive: true
behind: false

2
我找到了一个简单的解决方案来实现你想要的目标。
effect.findEmitter("youremitter").durationTimer = 0;

如果您每次渲染效果时都调用此函数,则可以将每个发射器重置为其起始持续时间计时器。我已经测试过它,看起来非常好用。

但请注意,您需要针对每个发射器调用此行。例如,如果您有一个带有火焰/烟雾粒子效果的火箭船,则应执行此操作。

public void render(float delta) {
    effect.findEmitter("fire").durationTimer = 0;
    effect.findEmitter("smoke").durationTimer = 0;
    // Render your particle effect here
}

我希望这能有所帮助,祝你好运!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接