物理引擎粒子效果_第1页
物理引擎粒子效果_第2页
物理引擎粒子效果_第3页
物理引擎粒子效果_第4页
物理引擎粒子效果_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 粒子系统简介为什么使用粒子系统?粒子系统在游戏中被大量的应用,我们主要将其应用于游戏特效,它能够极大的提高游戏的画面观感。有的时候,我们使用帧动画来给精灵添加动画,并且使用帧动画也可以实现特效效果。但是缺点也很明显:(1)画面效果弱,有时候要想实现一个大范围的爆炸,需要美工做很多的事情(2)细节不自然,在视觉上没有变化,模式比较僵硬(3)画面制作成本比较高以前,手机性能不强的时候,使用粒子系统是非常耗费资源的的,现在手机硬件配置和软件支持(OpenGL)的大幅度强化,让强大的粒子系统有了展示的机会。下面我们就来介绍一下粒子。2 粒子系统生命周期粒子作为一个对象,存在于引擎当中,它一旦诞生就

2、要经历一个完整的生命周期,生命周期包含了三个阶段:出生,成长以及死亡。首先,在引擎中存在一个粒子池,他用于存放等待复活的粒子,发射器会从粒子池中获取一个粒子,然后计算赋予的初始属性,将粒子发射出去,粒子出生。然后粒子发射出去之后,衰减器会在粒子运动过程中,不断的刷新来修改他的属性,这个过程就是粒子成长的过程。粒子死亡后,回归粒子池。等待重新被激活。3 粒子相关属性粒子常见的属性有位置,颜色,尺寸以及旋转属性等,我们需要的效果通过单个粒子是实现不了的,我们需要一个产生粒子的发射器,能够发射许许多多的粒子。4 发射器相关属性发射器有两种,一种是重力发射器(用于实现在重力条件下的粒子运动),另一种是

3、放射发射器(用于实现在无重力下的粒子运动)。在Cocos2d-x中,我们使用CCParticleSystem来设置发射器的属性,下面看一下发射器常见属性。代码清单16-1:struct CCPoint gravity; /重力和方向的向量 float speed; /速度 float speedVar; /粒子的速度差异 float tangentialAccel; /粒子的切线加速度 float tangentialAccelVar;/粒子间的切线加速度差异 float radialAccel; /粒子的径向加速度 float radialAccelVar; /粒子间的径向加速度差异 mod

4、eA; struct float startRadius; /粒子开始半径 float startRadiusVar; /粒子间开始半径差异 float endRadius; /粒子结束半径 float endRadiusVar; /粒子间结束半径差异 float rotatePerSecond; /粒子每秒的旋转角度 float rotatePerSecondVar;/粒子间每秒的旋转角度差异 modeB;粒子系统的多样性,依靠的是自身众多属性的配置,如果我们用代码来进行各项配置的话,那将对我们是一个极大的考验,因此,一些开发者就制作了粒子编辑器,接下来我们介绍一款简单的粒子编辑器Parti

5、cle Designer的使用。 Particle Designer是一款专门为Cocos2d开发的粒子编辑器,我们可以在网址下载试用版()适用版本有一些限制,不能保存和另存为,因此,你可以选择购买正式版,不贵7.99$。下面我们看一下该软件的界面如图16-1。图16-1 ParticleDesigner界面 图16-2 ParticleDesigner属性调整界面使用该软件的最大好处就是通过直观的方式来修改粒子的各种属性,如图16-2红色区域,省去了我们开发者单独调试的时间,并且可以在模拟器视图中同步的看到粒子属性修改带

6、来的变化,设计完成之后你可以导出以便在你的应用程序中进行使用。5 代码中使用粒子效果当我们设计完成粒子效果之后,可以将其保存为plist文件,plist文件就是将粒子系统所需要的参数以XML的形式组装起来,而由于cocos2d-x直接支持plist作为粒子系统的参数,并且cocos2dx已经为我们提供了非常多的粒子系统效果:CCParticleSystem(所有粒子系统的父类)- CCParticleSystemPoint、CCParticleSystemQuad (点粒子和方形粒子系统,都继承了CCParticleSystem的所有属性)- CCParticleExplosion (爆炸粒子

7、效果)- CCParticleFireworks (烟花粒子效果)- CCParticleFire (火焰粒子效果)- CCParticleFlower (花束粒子效果)- CCParticleGalaxy (星系粒子效果)- CCParticleMeteor (流星粒子效果)- CCParticleSpiral (漩涡粒子效果)- CCParticleSnow (雪粒子效果)- CCParticleSmoke (烟粒子效果)- CCParticleSun (太阳粒子效果)- CCParticleRain (雨粒子效果)下面我们看一下如何在项目中使用我们导出的文件(1)使用我们自己导出的文件,

8、如代码清单16-2。代码清单16-2:/Boom.plist文件是我们导出的文件CCParticleSystemQuad* sy=CCParticleSystemQuad:create (Boom.plist);/设置单个粒子的纹理sy-setTextureWithRect(CCTextureCache:sharedTextureCache()-addImage(fire.png”),CCRectMake(0,0,32,32);sy-setBlendAdditive(true);/这个调用必不可少sy-setPosition(ccp(200,200);/设置位置sy-setDuration(2

9、);/设置持续时间addChild(sy);/添加粒子效果sy-setAutoRemoveOnFinish(true);/播放完之后自动移除(2) 使用系统提供的粒子效果,我们以下雪CCParticleSnow为例子进行讲解,如代码清单16-3。代码清单16-3:CCParticleSnow* sy=CCParticleSnow:create();/设置单个粒子的纹理 sy-setTextureWithRect(CCTextureCache:sharedTextureCache()-addImage(fire.png”) ,CCRectMake(0,0,32,32);sy-setBlendAdditive(true);/这个调用必不可少sy-setPosition(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论