Cocos2d-x学习笔记(十四)-------->粒子特效

粒子特效
Cocos2d-x粒子特效原理
不论是2D还是3D,几乎每个游戏引擎都会提供一套自己的粒子系统,这些粒子系统的内容和功能大同小异,原因是粒子系统本身就已经成为了游戏开发的技术规范。粒子系统所模拟的图像效果都有如下特点:
(1)整个现象都是由很多个独立的图像效果组成,这些图像效果都有自己的位置、移动轨迹等特点;
(2)这些独立的图像效果组合或者叠加起来,就形成了要模拟的现象;
(3)独立的图像效果经过一段生命周期之后会从屏幕上消失,进而可以将其状态重置并重新利用;
以上所谓的独立图像,就可以抽象称为粒子,而对整个现象的模拟,就是对多个粒子的控制和管理过程,这就是粒子系统的主要工作。参考粒子系统的运行原理和特点,在x引擎的粒子系统中,提供了两个最为主要的功能类。
粒子类:每个单独的粒子是整个粒子特效的一个基本组成部分,每个粒子都具有大量属性,比如粒子图片、生命时长、方向、速度、加速度等,这些属性能够决定粒子的外观及行为表现。
粒子发射器:实际上是所有粒子的管理者,是用来进行粒子生成、粒子控制、回收粒子的管理器类。

Cocos2d-x引擎使用单一发射器模式,也就是说每个粒子特效都是独立的,都具有自己唯一的发射器和大量属于此发射器的粒子。比如要实现一架飞机的爆炸,我们需要定义两个独立的粒子系统,第一个负责显示爆炸火焰粒子特效,第二个复杂显示飞机残片散落特效。有些游戏引擎可能提供多发射器模式,一个粒子系统同时具有多个粒子发射器,可以发射不同的粒子效果。这两种模式并没有明显的好坏之分,因为它们都能满足实现复杂粒子效果的需求。

x引擎粒子发射器工作原理
在进行粒子系统创建时,首先把粒子发射器放到某个位置,然后设定要生成的粒子的数量及粒子的起始属性,然后再开始创建出粒子,并不断的更新粒子的状态,粒子在更新运动状态的同时生命值会不断地消耗直至死亡。死亡后的粒子被发射器记录回收,为保证同一时间内有固定数量的粒子在存活中,发射器会在合适的时间重新初始化并运行回收的粒子。

x引擎在渲染粒子对象时,少则几十个粒子,多则成百上千。所以粒子对象的绘制必然要使用高效的批量绘制技术,这一特点和精灵Sprite的批量绘制SpriteBatchNode方法比较相似。x引擎使用了CCParticleBatchNode,这个类的强大支持下,使用同一个纹理的粒子对象被高效地绘制到屏幕之上。

CCParticleSystem是x引擎提供的粒子系统类,而在此类基础上,x引擎还提供了一种更完善的CCParticleSystemQuad作为扩展粒子系统。CCParticleSystemQuad使用户可以在不需要批次节点(BatchNode)时也能够实现粒子系统的OPENGL顶点和索引缓冲的创建和渲染。但是大家在使用粒子系统时,尽量保证使用同一张图片资源,尽量使用批次渲染以提高游戏的运行效率。x引擎还内置了30多种直接可用的粒子特效,这些特效都在CCParticleSystemQuad基础上定义成了直接可用的类,我们在使用时直接定义对象并修改粒子属性就能够得到让人满意的效果。

使用
bulletCaseEmitter = new CCParticleSystemQuad();
bulletCaseEmitter->initWithTotalParticles(15);
bulletCaseEmitter->autorelease();

bullet
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值