我正在设计自己的粒子系统引擎,这是出于学习目的,我真的不想使用现有的引擎。
现在我生成了漂亮的粒子,但我想对引擎进行布局以使其更容易使用它们。
我一直在思考一个“粒子系统”类,
该类将包含以下引用:
particleList:组成系统的粒子列表。
systemEmitter:粒子的系统发射器,Emitter 类应该能够执行多种粒子发射技术,例如从线、点发射、从多边形随机发射。这个类也应该做发射控制,比如向一个点发射,远离一个点,在一个方向和时间发射。
粒子控制器:管理例如围绕一个点的旋转、可变粒子大小、可变粒子颜色、粒子以不同方式反应的系统周围区域、碰撞检测(与其他对象或在必要时在粒子内)。
粒子渲染器:负责绘制这个系统,可变混合类型,粒子纹理,粒子类型如三角形,圆形,自定义......
这四项,就组成了粒子系统类。一些 FX 可能需要多个粒子系统,例如 Fire FX,可以使用一个系统用于火,一个系统用于烟雾,一个系统用于火花。
这就是我的想法,但我真的很想知道这种设计方法是否良好,或者您是否看到我遗漏了某些东西或可以/应该做一些不同的事情。我还没有想过一些简单的方法来“保存”FX,例如什么是告诉我的引擎的最佳方式,“draw Fire”、“draw explode”、“draw喷泉”等,也许存储 FX 信息在 xml 文件中将是一个好主意,等等。
非常欢迎提出意见,正如我之前所说,出于学习的原因,我真的想构建这个,而不是使用另一个引擎。