cocos2dx之粒子系统

在粒子效果中,通常存在一个对所有粒子进行统一调度的引擎,称作粒子系统(partical system),它负责粒子的产生,随时间改变粒子的状态,以及最后回收不再需要的粒子。如果按照粒子系统的维数来区分,粒子系统可以分为二维粒子系统与三维粒子系统两种。

 Cocos2d-x为我们提供的粒子系统由CCParticleSystem类实现。与其他的粒子引擎一样,CCParticleSystem实现了对粒子的控制与调度,对粒子的操作包括如下几种。
 产生粒子:这部分也被称作粒子发射器(emitter)。
 更新粒子状态:引擎会随时间更新粒子的位置、速度以及其他状态。
 回收无效粒子:当粒子的生存周期结束后,就会被系统回收。
 因此,为了创建一个粒子效果,我们需要定义粒子如何产生以及状态如何改变。
 CCParticleSystem提供了多种初始化方式。我们可以通过指定粒子数量来创建一个粒子系统,然后需要设置粒子的外观(通常为一张小纹理)、发射方式与运动方式。创建一个全新的粒子系统通常较为烦琐,大多数情况下,我们更乐意把粒子系统的参数保存在文件中,而Cocos2d-x就是使用Plist文件来保存这些参数的。暂时抛开粒子效果文件Plist不谈,如果我们已经拥有一个粒子效果文件,就可以利用CCParticleSystem的初始化方法直接从文件中导入一个粒子效果,相关代码如下:
 bool initWithFile(const char *plistFile)
 static CCParticleSystem* create(const char *plistFile)


实际上,引擎已经内置了若干粒子效果,它们作为粒子系统的样例,只需要简单的几行代码就可以创建,正如CCAction为我们做的一样。这些粒子效果的代码放在Cocos2d-x引擎目录下"particle_nodes"目录中的"CCParticleSystem.cpp"文件中。


产生一个例子代码:

CCParticleSystem *particle = CCParticleSnow::node();
 particle->setTexture(CCTextureCache::sharedTextureCache()->addImage("snow.png"));
 this->addChild(particle);


在上述代码中,第二条语句指定了粒子所使用的纹理,即"snow.png"。对于任何粒子系统,Texture都是一个必须设置的属性,粒子系统中的每一个粒子都使用此纹理渲染出来。在这个例子中,每一个粒子都被赋予雪花纹理,因此可以呈现出雪花飘落的效果。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值