粒子系統表示3維計算機圖形學中摹擬1些特定的模糊現象的技術,而這些現象用其它傳統的渲染技術難以實現的真實感的 game physics。常常使用粒子系統摹擬的現象有火、爆炸、煙、水流、火花、落葉、云、霧、雪、塵、流星尾跡或象發軌跡這樣的抽象視覺效果等等。
OGE引擎的粒子系統中由粒子、粒子發射器、粒子初始化器、粒子修改器來表現粒子效果。
粒子系統:是Entity的子類,管理粒子發射器,發射比率,粒子孵化,管理粒子修改器等的1個系統
粒子發射器:繼承IUpdateHandler,在固定范圍隨機生成發射坐標
粒子初始化器:初始化Entity部份參數。如:alpha值
粒子修改器:粒子初始化器子類,一樣修改Entity部份參數,但是會在粒子系統的onManagedUpdate中進行更新,類似于Entity中注冊Modifier的效果
粒子:對1個Entity進行封裝,包括1些粒子的屬性
public void setMyParticle(float pX, float pY, TextureRegion region, Scene pScene) {
PointParticleEmitter particleEmitter = new PointParticleEmitter(pX, pY);
SpriteParticleSystem mParticleSystem = new SpriteParticleSystem(particleEmitter, 10, 10, 30, region, pScene.getVertexBufferObjectManager());
mParticleSystem.addParticleInitializer(new VelocityParticleInitializer<Sprite>(⑴50, 150, ⑶80, 0));
mParticleSystem.addParticleInitializer(new ExpireParticleInitializer<Sprite>(5f, 6f));
mParticleSystem.addParticleModifier(new ScaleParticleModifier<Sprite>(0f, 5f, 0, 1.3f));
mParticleSystem.addParticleModifier(new AlphaParticleModifier<Sprite>(0.8f, 1, 0.2f, 1f));
pScene.attachChild(mParticleSystem);
}