制作一个简单的粒子系统

时间:2014-12-12 04:50:16

标签: c++ opengl graphics particle-system

我对我设计粒子系统的方式有疑问。

现在我有一个P类,它存储有关粒子的所有信息,如速度,位置,方向,类型等。我还有一个主文件,我将绘制这些粒子,更新并实例化它们。我想使用c ++ std列表库创建这些粒子的列表,所以最初我做了

std::list<P> listOfParticles; 

在主文件中。这是问题所在。通过这样做,我将基本上被迫在主文件中进行更新和绘制功能。我觉得这是不好的做法,并且与粒子有关的一切都应该保留在一个班级中,但我不确定从最佳实践的角度去哪里。在P类中创建粒子列表是一个好主意,我在这里定义粒子是什么?我觉得这不是一个聪明的想法.. 如果有人能指导我朝着正确的方向前进,我会非常感激。

2 个答案:

答案 0 :(得分:0)

“通过这样做,我将基本上被迫在主文件中进行更新和绘制功能”

没有人阻止你将类成员的声明/定义放在相同/不同的.h / .cpp文件中。

编辑: -

这就是我所说的,如果你让这个List成为其他类的成员,你会把所有函数都用来操作这个列表,那就更好了。

答案 1 :(得分:0)

你的粒子列表很可能值得拥有自己的类,让C来处理存储,初始空间分布,时间更新......即粒子云上的所有全局操作。如果您确定要处理单个列表,可以将其设为静态成员。

如果不需要从外部看到,则表示单个粒子(P)的类可以嵌套到(C)中。它将封装粒子数据,也可能模拟与另一个粒子和其他单粒子操作的成对相互作用。