particleEmitter.start() 方法在粒子发射器 class 中做了什么?

what does particleEmitter.start() method do in particle emitter class?

不管我放不放start()方法,我的粒子发射器运行方式都是一样的,那么start()方法有什么用

如果你看ParticleEffect的源码class再看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,这意味着 "this is the first update" 即我们将第一次做某事(查看源代码以了解使用布尔值的地方)

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

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

希望对您有所帮助。