0

无论我是否放置 start() 方法,我的粒子发射器都以相同的方式运行,那么 start() 方法有什么用。

4

1 回答 1

0

如果你查看 ParticleEffect 类的源代码,然后查看 start 方法,你会看到 -

public void start () {
    for (int i = 0, n = emitters.size; i < n; i++)
        emitters.get(i).start();
}

基本上,这意味着它正在遍历所有发射器并调用 ParticleEmitter#start 方法。

现在让我们看看 ParticleEmitter 的 start 方法。

public void start () {
    firstUpdate = true;
    allowCompletion = false;
    restart();
}

基本上从该方法中,您可以看到它将firstUpdate布尔值设置为 true,这意味着“这是第一次更新”,即我们将第一次做某事(查看源代码以查看布尔值的使用位置)

下一行,它设置allowCompletion为 false,这意味着,如果发射器已经在进行中,不要让它完成(检查源代码以查看布尔值的使用位置)

最后的调用是不restart()言自明的(如果它已经在运行,则重新启动这个发射器。)

我希望这有帮助。

于 2018-09-19T15:54:44.223 回答