制作一个简单的粒子系统



我有一个关于我设计粒子系统的方式的问题。

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

std::list<P> listOfParticles; 

在主文件中。这就是问题所在。通过这样做,我基本上将被迫在主文件中进行更新和绘制函数。我觉得这是不好的做法,与粒子有关的所有内容都应该放在一个课堂上,但我不确定在最佳实践方面从哪里开始。在我定义粒子是什么的 P 类中创建一个粒子列表是个好主意吗?我觉得这不是一个聪明的主意。如果有人能引导我朝着正确的方向前进,我将不胜感激。

"通过这样做,我基本上将被迫在主文件中进行更新和绘制函数"

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

编辑:-

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

你的粒子列表很可能应该有自己的类,let C,它将处理存储、初始空间分布、时间更新......即粒子云上的所有全局操作。如果您确定将永远处理单个列表,则可以将其设置为静态成员。

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

最新更新