2012-08-23 35 views
0

我需要一些關於如何或某些代碼示例或與此相關的任何想法。AdnEngine粒子系統多少個粒子更新

我已經取得了一些粒子系統,那麼我在這裏將從例如薩科

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; 

這裏顯示的是該變種從以前的代碼

ParticleSystemNexusExample.RATE_MIN 
ParticleSystemNexusExample.RATE_MAX 
ParticleSystemNexusExample.PARTICLES_MAX 

它在某種程度上possbile? 有可能以某種方式重新啓動粒子系統。 好吧重新啓動它不是100%「實時」更新系統,但我需要像使用設置一樣留在應用程序中,當你退出設置時它會得到新的變量。

Basicly我有onCreateSceneParticleSystem();

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

而且可能要重新啓動嗎?

回答

0

目前尚不十分清楚你想要做什麼,但Nicholas在ParticleSystem類中保留了最小和最大速率變量私有。我不確定你可以得到什麼樣的行爲,但是你可以嘗試爲它添加一個公共接口並實時更新它以查看會發生什麼。如果您不想混淆AndEngine平臺代碼,請參考以下建議:

您可以創建兩個或多個具有不同費率的粒子系統,並根據您的需要在屏幕上管理它們。如果你只是想交換一次,只需分開第一個並附加第二個。如果你想不斷改變它們,你可以使用setParticlesSpawnEnabled來確定哪一個是活動的。

乾杯!

+0

好吧,試着用scene.deatachChildren();之後我用設置中的新值附加它。這可以嗎? detachChildren();將破壞舊的粒子系統並創建新的權利? – Allen

+0

分離只是從場景中刪除它。你只應該確保你在引擎更新線程上調用它。 –

+0

那麼我用它updatethread是的,在新的值附加後,deatach。好嗎? – Allen