加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx -- 150505 学习笔记

发布时间:2020-12-14 21:14:56 所属栏目:百科 来源:网络整理
导读:CCParticleBatchNode: 粒子批处理节点,与CCSpriteBatchNode 类似,通过将使用了同样的Texture的粒子加入到TextureAtlas中,然后,在一次渲染中,渲染所有的粒子,从而达到提高效率的目的。 CCParticleSystem: 粒子系统类,不过只是一个基类,并不完善。 C

CCParticleBatchNode: 粒子批处理节点,与CCSpriteBatchNode 类似,通过将使用了同样的Texture的粒子加入到TextureAtlas中,然后,在一次渲染中,渲染所有的粒子,从而达到提高效率的目的。

CCParticleSystem: 粒子系统类,不过只是一个基类,并不完善。

CCParticleSystemQuad:粒子系统矩形类,实现CCParticleSystem的虚函数,postStep、updateQuadWithParticle、setTotalParticlesdraw函数。

postStep完成不使用BatchNode时的VBO的更新,该类可以在不使用BatchNode的情况下,自己完成粒子的渲染。

产生出特定的粒子系统: 通过从CCParticleSystemQuad派生子类,并重写初始化函数,即可完成特定的粒子系统。


支持两种发射器,一种是重力发射器,一种是环形发射器。

粒子的运动分为三种,自由模式、相对模式和集群模式。


粒子系统中,添加和删除粒子的代码非常有趣。 它使用了一个一维数组管理所有的粒子,当然,长度在最开始的时候就是确定的。

每当删除一个粒子时,直接用最后一个粒子的数据覆盖该粒子的数据,同时粒子总数减1,则完成删除。

添加一个粒子时,则是将粒子系统最后一个粒子的下一个粒子作为新的粒子初始化,并粒子总数加一,则完成添加。

粒子分布如下,


这样的分配方式,避免了对于粒子的频繁删除和释放,很聪明的做法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读