0

我需要一些关于如何或一些代码示例或与此相关的任何东西的想法。

我已经制作了一些粒子系统,这里我将从 nicolas 的示例中展示

final SpriteParticleSystem particleSystem = new SpriteParticleSystem(new PointParticleEmitter(-32, ParticleSystemNexusExample.CAMERA_HEIGHT - 32),
                                                                     ParticleSystemNexusExample.RATE_MIN, 
                                                                     ParticleSystemNexusExample.RATE_MAX, 
                                                                     ParticleSystemNexusExample.PARTICLES_MAX, 
                                                                     this.mParticleTextureRegion, this.getVertexBufferObjectManager());  

我需要的是“实时”更新变量

private static final float RATE_MIN = 5;
private static final float RATE_MAX = 8;
private static int PARTICLES_MAX = 16;

这是以前代码中的 var

ParticleSystemNexusExample.RATE_MIN
ParticleSystemNexusExample.RATE_MAX
ParticleSystemNexusExample.PARTICLES_MAX

以某种方式可能吗?可以以某种方式重新启动粒子系统。好吧,重新启动它不是 100%“实时”更新系统,但我需要像使用设置一样留在应用程序中,当你退出设置时,它会得到新的变量。

基本上我onCreateSceneParticleSystem();

我使用公共无效ParticleSystem() {}

并且可以重新启动它吗?

4

1 回答 1

0

目前尚不清楚您到底想做什么,但是 Nicholas 将最小和最大速率变量保留在 ParticleSystem 类上。我不确定你能得到什么行为,但你可以尝试为此添加一个公共接口并实时更新它以查看会发生什么。如果你不想乱用 AndEngine 平台代码,这里有一个建议:

您可以创建两个或多个具有不同速率的粒子系统,并根据您的需要在屏幕上管理它们。如果您只想交换一次,只需拆下第一个并连接第二个即可。如果您想在它们之间不断变化,您可以使用 setParticlesSpawnEnabled 来确定哪个是活动的。

干杯!

于 2012-08-23T21:11:34.633 回答