粒子引擎开发全解析
1. 粒子发射与Emitter类
在开发粒子系统时,需要一种有效的方式来发射粒子。直接调用 Particle
对象的 move()
方法虽可行,但存在局限性。更好的做法是将粒子发射过程封装到 Emitter
类中,这样能实现更高级的控制,同时隐藏复杂的发射计算。
在类图中,用实心菱形表示 Emitter
类和 Particle
类之间的组合关系。组合是一种面向对象编程(OOP)技术,与继承不同,它是将一个类的引用嵌入到另一个类中,即“has a”关系。
以下是 Emitter
类的代码:
/**
* Emitter class
* Particle Engine
* By Ira Greenberg <br />
* The Essential Guide to Processing for Flash Developers,
* Friends of ED, 2009
*/
class Emitter {
// Properties
// emitter position
PVector loc = new PVector(0, 0);
// rate particles are created
float birthRate;
// 3D path particles are projected
PVector birt