开发工具:
文件大小: 219kb
下载次数: 0
上传时间: 2010-05-03
详细说明: 粒子系统的一个简单框架 class CParticleSystem; class CParticle { public: enum TYPE { VISTUAL, PARTICLE_SYSTEM }; public: CParticle(VOID); virtual ~CParticle(VOID); public: INT liveFrame; // 生存时间 INT indexFrame; // 贞索引 BOOL isKeepLocal; // 保持本地坐标 // 说明: 相对于发射他的发射器而言 VEC3 scale; // 缩放 VEC3 position; // 位置 QUAT orientation; // 朝向 VEC4 color; // 颜色 VEC2 uvOffset; // 纹理坐标偏移 VEC3 velocity; // 速度 public: CParticle *pNext; // 链接下一个粒子 public: CEmitterBase *pEmitter; // 发射器指针 CParticleSystem *pEmitParticleSystem; // 发射的粒子系统 }; class CParticleSystem { public: typedef std::vector EmitterSet; typedef std::vector AffectorSet; public: CParticleSystem(VOID); virtual ~CParticleSystem(VOID); public: VOID SetParticleQuota(INT quota, CParticle::TYPE type, const CHAR *szParticleSystem); // 设置粒子总量 INT GetParticleQuota(VOID) const; // 获得粒子总量 public: VOID SetGfx(CGfxBase::TYPE type); // 设置图形 CGfxBase* GetGfx(VOID) const; // 获得图形 public: CEmitterBase* AddEmitter(CEmitterBase::TYPE type); // 添加发射器 VOID RemoveEmitter(CEmitterBase *pEmitter); // 删除发射器 INT GetEmitterCount(VOID) const; // 获得发射器数量 CEmitterBase* GetEmitter(INT indexEmitter) const; // 获得发射器 public: CAffectorBase* AddAffector(CAffectorBase::TYPE type); // 添加影响器 VOID RemoveAffector(CAffectorBase *pAffector); // 删除影响器 INT GetAffectorCount(VOID) const; // 获得影响器数量 CAffectorBase* GetAffector(INT indexAffector) const; // 获得影响器 public: VOID SetPosition(const VEC3 *position); // 设置位置 const VEC3* GetPosition(VOID) const; // 获得位置 VOID SetDirection(const VEC3 *direction); // 设置朝向 VOID SetOrientation(const QUAT *orientation); // 设置朝向 const QUAT* GetOrientation(VOID) const; // 获得朝向 public: VOID Play(VOID); // 播放 VOID Stop(VOID); // 停止 VOID Pause(VOID); // 暂停 VOID Resume(VOID); // 继续 VOID Update(VOID); // 更新 VOID Render(VOID); // 渲染 protected: VOID UpdateParticles(VOID); // 更新粒子 VOID UpdateEmitter(VOID); // 更新发射器 VOID UpdateAffector(VOID); // 更新影响器 protected: BOOL m_isPlaying; // 播放状态 BOOL m_isPause; // 暂停播放状态 INT m_indexFrame; // 贞计数 INT m_beginFrame; // 开始贞 INT m_durationFrame; // 持续贞数 protected: CParticle::TYPE m_particleType; // 粒子类型 CGfxBase *m_pGfx; // 图形 INT m_particleQuota; // 粒子总数 CParticle *m_pParticles; // 粒子池 CParticle *m_pActiveParticleList; // 活动粒子链表 CParticle *m_pFreeParticleList; // 空闲粒子链表 EmitterSet m_emitters; // 发射器集合 AffectorSet m_affectors; // 影响器集合 CGfxFactory m_gfxFactory; // 图形工厂 CEmitterFactory m_emitterFactory; // 发射器工厂 CAffectorFactory m_affectorFactory; // 影响器工厂 protected: VEC3 m_position; // 位置 QUAT m_orientation; // 朝向 }; ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.