C++ OpenGL粒子问题

来源:百度知道 编辑:UC知道 时间:2024/05/03 08:17:42
假如我定义了一个的Particles,并赋予了一些属性...
class Particles
{
public:
Particles(float x, float y, float z);
void Render();
bool dead;
private:
Position Pos;
Color Col;
float speed;
float speed_acc;
float alpha;
float alpha_dec;
float size;
};
Particles::Particles(float x, float y, float z)
{
Pos.x = x;
Pos.y = y;
Pos.z = z;
Col.R = 1.0f;
Col.G = 1.0f;
Col.B = 0.8f;
speed = 0.2f;
speed_acc = GetRandom(0.013f, 0.015f);
alpha = 1.0f;
alpha_dec = GetRandom(0.033f, 0.03301f);
size=4.0f;
dead = false;
}
现在我要定义一个oldparticle来存储上面的这个粒子和他的属性值,该怎么写?我在自己思考过后写了一些,
在这段代码的下面写了这么一段(不知道对错):
Particles::Particles(Pos const &p){
Pos.x = p.Pos.x;
Pos.y = p.Pos.y;
Pos.z = p.Pos.z;
Col.R = p.Col.R;
Col.G = p.Col.G;
Col.B = p.Col.B;
speed = p.speed;
speed_acc = p.speed_acc;
alpha = p.

你可以增添Particles 类的公用成员函数来实现。
例如:
Particles::saveShuXin(...) -- 用于存放属性
Particles::getShuXin(...) -- 用于取得属性
为了存放属性,你需要添加一些成员变量单元,例如
private:
Color old_Col;
Position old_Pos;
=====================================
通常称 Particles(float x, float y, float z);
constructor, 用于“建”和初始化。