cocos2dx -- 150505 学习笔记

来源:互联网 发布:武汉软件开发工资 编辑:程序博客网 时间:2024/06/13 13:26

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

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

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

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

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


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

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


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

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

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

粒子分布如下,


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

0 0
原创粉丝点击