OpenGL中如何保存粒子的现有的属性? 现在我要定义一个oldParticle去存放这些属性,具体该怎么写?再数据更新的时候有这么一句话:Particles oldParticle( *this );去调用oldParticle的值.拿位大哥会的就帮我下,小弟先谢过了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是要拷贝构造函数到oldParticle中;自己仔细看了一下,代码也做了些修改:struct Position{ float x; float y; float z;};struct Color{ float R; float G; float B;};class Particles{public: Particles(float x, float y, float z); Particles(const Particles &p) void Render(); bool dead;private: Position Pos; Color Col; float speed; float speed_acc; float alpha; float alpha_dec; float size;};//数据更新 if(fps==0) fps=30; Particles oldParticle( *this );//(这句话是调用oldParticle的属性值,也就是在particles那里拷贝过来的属性值) speed+=speed_acc; Pos.y +=speed; alpha-=alpha_dec; size-=0.05f*(30/fps); Pos.x +=-Pos.x/30.0f; Pos.z +=-Pos.z/30.0f; if(alpha<=0.0f) dead=true;}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;} Particles::Particles(const Particles &p){ this->Pos.x = p.Pos.x; this->Pos.y = p.Pos.y; this->Pos.z = p.Pos.z; this->Col.R = p.Col.R; this->Col.G = p.Col.G; this->Col.B = p.Col.B; this->speed = p.speed; this->speed_acc = p.speed_acc; this->alpha = p.alpha; this->alpha_dec = p.alpha_dec; this->size = p.size; this->dead = p.dead;}调试不出来,高手帮我看下哪里不对,谢谢 拷贝构造函数写成这样先Particles::Particles(const Particles &p){ Pos.x = p.Pos.x; Pos.y = p.Pos.y; Pos.z = p.Pos.z; .... size = p.size; dead = p.dead;}然后就是你这个地方Particles oldParticle( *this );你的这个THIS到底指的什么,你得搞清楚 list视图类使用类向导添加ON_WM_TIMER消息//怎么报元素为null错误? VC如何提取flash图片 VC中图像被擦除的问题 MFC编程问题 请问各位的头文件和cpp文件是怎么归类的 求助:程序段调试时正常而一运行就出错是怎么回事啊? 对话类的OnPaint()函数应生成CPaintDC类的设备描述表,而不是CClientDC类的设备描述表? vc的编译模式有哪几种? 怎样救治我的IE浏览器???? 如何实现Word中的打印对话框中的文档属性对话框,UP有分! 关于GetDlgItem(); 我想HOOK一个窗体创建的消息,用什么HOOK
struct Position
{
float x;
float y;
float z;
};struct Color
{
float R;
float G;
float B;
};class Particles
{
public:
Particles(float x, float y, float z);
Particles(const Particles &p)
void Render();
bool dead;
private:
Position Pos;
Color Col;
float speed;
float speed_acc;
float alpha;
float alpha_dec;
float size;
};
//数据更新 if(fps==0) fps=30;
Particles oldParticle( *this );//(这句话是调用oldParticle的属性值,也就是在particles那里拷贝过来的属性值)
speed+=speed_acc;
Pos.y +=speed;
alpha-=alpha_dec;
size-=0.05f*(30/fps); Pos.x +=-Pos.x/30.0f;
Pos.z +=-Pos.z/30.0f; if(alpha<=0.0f) dead=true;
}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;
}
Particles::Particles(const Particles &p){
this->Pos.x = p.Pos.x;
this->Pos.y = p.Pos.y;
this->Pos.z = p.Pos.z;
this->Col.R = p.Col.R;
this->Col.G = p.Col.G;
this->Col.B = p.Col.B;
this->speed = p.speed;
this->speed_acc = p.speed_acc;
this->alpha = p.alpha;
this->alpha_dec = p.alpha_dec;
this->size = p.size;
this->dead = p.dead;
}调试不出来,高手帮我看下哪里不对,谢谢
Particles::Particles(const Particles &p){
Pos.x = p.Pos.x;
Pos.y = p.Pos.y;
Pos.z = p.Pos.z;
....
size = p.size;
dead = p.dead;
}
然后就是你这个地方Particles oldParticle( *this );
你的这个THIS到底指的什么,你得搞清楚