粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的 game physics。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发轨迹这样的抽象视觉效果等等。
OGE引擎的粒子系统中由粒子、粒子发射器、粒子初始化器、粒子修改器来表现粒子效果。
粒子系统:是Entity的子类,管理粒子发射器,发射比率,粒子孵化,管理粒子修改器等的一个系统
粒子发射器:继承IUpdateHandler,在固定范围随机生成发射坐标
粒子初始化器:初始化Entity部分参数。如:alpha值
粒子修改器:粒子初始化器子类,同样修改Entity部分参数,但是会在粒子系统的onManagedUpdate中进行更新,类似于Entity中注册Modifier的效果
粒子:对一个Entity进行封装,包含一些粒子的属性
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>(-150, 150, -380, 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);
}
原文地址:http://blog.csdn.net/orangegame/article/details/40657589