数据结构应用(列——简单应用(粒子系统)).pptVIP

数据结构应用(列——简单应用(粒子系统)).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
队列 简单应用 STL中的队列 STL中提供了queue来表示队列。 queue允许新增元素、移除元素、从最低端加入元素、取得最顶端元素。但是除了最低端可以加入、最顶端可以取出外,没有任何其他方法可以存取queue的其它元素。换言之,queue不允许有遍历行为。 将元素推入queue的操作称为push,将元素推出queue的操作称为pop。 queue以deque作为内部实现容器。 常用方法 empty 是否为空 size 元素个数 front 队头元素 push 插入队列 pop 删除对头元素 back 得到队尾元素 使用举例 #include queue #include iostream using namespace std; void main() { queueint q; for(int i= 0;i10;i++) { q.push(i); } coutq.size()endl; for(int i=0;i10;i++) { coutq.front() ; q.pop(); } coutq.size()endl; } 应用举例——粒子系统 粒子系统可以用来模拟自然界的物理系统,比如雨、雪、瀑布、喷泉、火焰等。 粒子系统是有众多细小的微粒组成,每个微粒拥有自己的物理属性,如:速度、所受加速度、颜色、微粒大小等。 观察粒子系统演示,总结粒子系统的属性 粒子 粒子是组成粒子系统的最小单位。 从本质上来说,粒子是一个精灵。 粒子是具有一些特殊物理属性的精灵,需要服从于某种物理规律更新自身。 既然粒子是一种新的精灵,它需要使用扩展框架的一般做法来表示这种新的精灵类型。 下面看粒子类的定义 class CParticle : public CSprite { public: CParticle( LPDIRECT3DDEVICE9 pD3DDevice, const LPCWSTR pszName, LPDIRECT3DTEXTURE9 pTexture, //纹理 D3DXVECTOR3 vPos, //位置向量 int w, //精灵宽度 int h, //精灵高度 int tx = 0, //纹理x int ty = 0, //纹理y D3DXVECTOR3 vHotSpot=D3DXVECTOR3(0,0,0) ); public: ~CParticle(void); private: D3DXVECTOR3 vAccel; D3DXVECTOR3 vVelocity; //D3DXVECTOR3 vGravityAccel; //D3DXVECTOR3 vTangentAccel; //D3DXVECTOR3 vNormalAccel; float fSurvivalTime; float fLifeTime; float fSpin; float fAngle; D3DXCOLOR startColor; D3DXCOLOR endColor; D3DXCOLOR colorAccel; float fStartSize; float fEndSize; float fSizeAccel; public: void Update(float fDeltaTime); void SetColor(D3DXCOLOR startColorVal, D3DXCOLOR endColorVal); void SetLifeTime(float fTime); void Relive(); void SetSpin(float fSpinVal); void SetVelocity(D3DXVECTOR3 vVelocityVal); void SetAccel(D3DXVECTOR3 vAccelVal); void SetSize(float startSize,float endSize); void AddAccel(D3DXVECTOR3 vAccelVal); }; 管理粒子精灵 众多的粒子精灵需要统一管理调度,这些调度包括系统中粒子精灵数目控制,粒子物理属性的设置、粒子精灵的“生、死”控制。 粒子创建是有开销的,为了尽可能高地提高效率, 可以采用链表或者队列来存储活的和死的粒子。 这

文档评论(0)

wyw118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档