[Cocos2d-x For WP8]Particle粒子系统
在游戏中,经常要实现一些真实的效果,这些效果(如,火焰,雪花等)都是由大量微粒组合而形成的。为了在游戏中实现这种效果,我们必须引进粒子系统,粒子系统中需要包括四个部分:粒子对象,运动规律,随机性,粒子状态。大量的粒子叠加就可以产生我们需要的特效。
在cocos2d-x引擎中,粒子系统使用CCParticleSystem来表示,又分为两大类,重力式粒子系统CCParticleSystemPoint和放射式粒子系统CCParticleSystemQuad,两者在功能上略有不同,CCParticleSystemQuad支持围绕轴线旋转,CCParticleSystemQuad支持更多粒子对象和缩放,重力式故名思义,系统中存在重力,重力大小可以自己定义,包括的参数有:重心,速度,方向,尺寸,存在时间,颜色,绕自己轴心旋转角度,角加速度,线加速度,半径,分组模式(是否随重心移动),放射性系统恰恰相反,不存在重力,包括的参数有:重心,方向,尺寸,存在时间,颜色,绕自己轴心旋转角度,绕重心为轴心旋转角度,半径,分组模式(是否随重心移动)。
那么下面是每个粒子都具有以下一些属性及其规则:
//在init方法里面初始化当前的实例
bool HelloWorld::init()
{
bool bRet = false;
do
{
//CCLayer进行初始化,初始化失败跳出循环
if ( !CCLayer::init() )
{
break;
}
//获取手机屏幕的大小
CCSize size = CCDirector::sharedDirector()->getWinSize();
//1自定义实现
//建立一个粒子系统
CCParticleSystem* pParticleSystem=new CCParticleSystemQuad();
//产生300个粒子
pParticleSystem->initWithTotalParticles();
//设置粒子图片
pParticleSystem->setTexture(CCTextureCache::sharedTextureCache()->addImage("cat.png"));
//设置粒子系统持续时间
pParticleSystem->setDuration(-);
//设置重力方向
pParticleSystem->setGravity(CCPointZero);
//设置角度,角度变化率
pParticleSystem->setAngle();
pParticleSystem->setAngleVar();
//设置运动速度,运动速度的变化率
pParticleSystem->setSpeed();
pParticleSystem->setSpeedVar();
//设置径向加速度,径向加速度的变化率
pParticleSystem->setRadialAccel();
pParticleSystem->setRadialAccelVar();
//设置切向加速度,径向加速度的变化率
pParticleSystem->setTangentialAccel();
pParticleSystem->setTangentialAccelVar();
//设置粒子初始位置,位置变化率
pParticleSystem->setPosition(size.width/,size.height/);
pParticleSystem->setPosVar(ccp(,));
//设置粒子存在时间,时间变化率
pParticleSystem->setLife();
pParticleSystem->setLifeVar(0.3);
//设置粒子初始颜色,颜色变化率
ccColor4F cccStart={0.5,0.5,0.5,1.0};
pParticleSystem->setStartColor(cccStart);
pParticleSystem->setStartColorVar(cccStart);
//设置粒子结束颜色,颜色变化率
ccColor4F cccEnd={0.5,0.5,0.5,1.0};
pParticleSystem->setStartColor(cccEnd);
pParticleSystem->setStartColorVar(cccEnd);
//设置粒子初始大小,大小变化率
pParticleSystem->setStartSize();
pParticleSystem->setStartSizeVar();
//设置粒子结束大小,大小变化率
pParticleSystem->setStartSize();
pParticleSystem->setStartSizeVar();
//设置每秒产生粒子数
pParticleSystem->setEmissionRate(pParticleSystem->getTotalParticles()/pParticleSystem->getLife()); this->addChild(pParticleSystem,); //2使用系统自带的 CCParticleSystem* m_emitter;
//烟花粒子效果
m_emitter = CCParticleFireworks::create();
m_emitter->retain();
this->addChild(m_emitter, );
m_emitter->setTexture( CCTextureCache::sharedTextureCache()->addImage("cat.png") );
m_emitter->setPosition(ccp(,));
/* -- CCParticleSystem(所有粒子系统的父类)
-- CCParticleSystemPoint、CCParticleSystemQuad 点粒子和方形粒子系统
-- CCParticleExplosion (爆炸粒子效果)
-- CCParticleFireworks (烟花粒子效果)
-- CCParticleFire (火焰粒子效果)
-- CCParticleFlower (花束粒子效果)
-- CCParticleGalaxy (星系粒子效果)
-- CCParticleMeteor (流星粒子效果)
-- CCParticleSpiral (漩涡粒子效果)
-- CCParticleSnow (雪粒子效果)
-- CCParticleSmoke (烟粒子效果)
-- CCParticleSun (太阳粒子效果)
-- CCParticleRain (雨粒子效果) */ //第三种方法通过plist文件创建
CCParticleSystemQuad *system = new CCParticleSystemQuad();
system->initWithFile("Images/SpinningPeas.plist");//plist文件可以通过例子编辑器获得
system->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage("cat.png")
, CCRectMake(,,,));
addChild(system, );
system->setPosition(ccp(,)); //接收界面的的触摸事件
setTouchEnabled(true); bRet = true;
} while ();
//返回成功
return bRet;
}
运行的效果:

[Cocos2d-x For WP8]Particle粒子系统的更多相关文章
- cocos2d 粒子效果以及Particle Designer粒子工具的学习
最近在学习cocos2d中的粒子效果吧,下面就把学到的和大家分享下吧! Now!我们先了解下类结构吧 -- CCParticleSystem(所有粒子系统的父类) -- CCParticleSyste ...
- Cocos2d-x游戏移植到WP8之路 -- c++和c#交互
Cocos2d-x是眼下最流行的手机游戏引擎之中的一个,开源.轻量.多平台等的诸多特性使得它被非常多国内外手游开发人员所喜爱. 利用Cocos2d-x来开发Windows Phone 8的游戏相同也是 ...
- Cocos2d粒子系统二
粒子系统的属性: 粒子的发射速度 重力模式(模式A): 重力 方向 速度 +- 变动 切向加速度 +- 变动 径向加速度 +- 变动 半径模式(模式B): 开始半径 +- 变动 结束半径 +- 变动 ...
- cocos2d-x:Particle System(粒子系统)
一.粒子系统简介: 粒子系统最早出现在80年代,主要用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题.Particle System的应用非常广泛,大的可以模拟原子弹爆炸,星云 ...
- 粒子系统模块(Particle System Modules40)
粒子系统模块(Particle System Modules40) 粒子系统模块(忍者飞镖) 粒子系统(忍者飞镖)(Particle System (Shuriken)) 用模块描述粒子一段时间内的行 ...
- [原]Unity3D深入浅出 - 粒子系统(Particle System)
粒子系统是在三维空间渲染出来的二维图像,主要用于烟,火,水滴,落叶等效果.一个粒子系统由粒子发射器.粒子动画器和粒子渲染器三个独立的部分组成. Unity中自带了一些粒子效果,在Assets>I ...
- cocos2d-x Tests讲解 Particle System(粒子系统)
转载请注明出处: http://www.cnblogs.com/shangdahao/archive/2012/04/14/2447571.html 一.粒子系统简介: 粒子系统最早出现在80年代,主 ...
- Unity3D学习笔记——组件之Effects(效果/特效)——Particle System(粒子系统)
Effects:效果/特效. Particle System:粒子系统.可用于创建烟雾.气流.火焰.涟漪等效果. 在Unity3D 3.5版本之后退出了新的shuriken粒子系统: 添加组件之后 ...
- Unity3D:粒子系统Particle System
1. GameObject → Create Other → Particle System. 2. 选中 Particle System,可看到下列屬性: 3.Particle System: ...
随机推荐
- 试试markdown
看看有没有wrapper... list first list second list third list fourth list in list 1 list list list > < ...
- HM必修3
高中数学必修三 笔记与拓展 算法初步 算法是按照一定规则解决固定问题,通过对输入的某种变换产生结果. 素性测试 检验一个数是否为素数. 试除法 一个数是素数的充分必要条件是它因数个数为二.显然1和它本 ...
- How to: Set up Openswan L2TP VPN Server on CentOS 6
Have you ever wanted to set up your own VPN server? By following the steps below, you can set up you ...
- 【leetcode】Palindrome Partitioning II
Palindrome Partitioning II Given a string s, partition s such that every substring of the partition ...
- (转)Sql Server 对锁的初步认识
一:到底都有哪些锁 学习锁之前,必须要知道锁大概有几种???通常情况下作为码农我们只需知道如下几个锁即可... 1.S(Share)锁 为了方便理解,我们可以直接这么认为,当在select的时候在表, ...
- 【回溯】n皇后问题
问题 U: [回溯]n皇后问题 时间限制: 1 Sec 内存限制: 128 MB提交: 4 解决: 4[提交][状态][讨论版] 题目描述 在一个国际象棋棋盘上,放置n个皇后(n<10),使 ...
- Java问题排查工具箱[转载]
转载自:http://hellojava.info/?p=517 作者:阿里毕玄 问题排查除了最重要的解决思路和逻辑推导能力外,工具也是不可缺少的一部分,一个好用的工具可以事半功倍,甚至在某些情况下会 ...
- eoe项目结构
├ cn.eoe.app –存放程序全局性类的包├ cn.eoe.app.adapter –存放适配器的实现类的包 ├ cn.eoe.app.adapter.base –存放适配器基类的包├ cn.e ...
- 配置hadoop-1.2.1出现localhost: Error: JAVA_HOME is not set.
配置hadoop-1.2.1出现localhost: Error: JAVA_HOME is not set. 具体为: hadoop@dy-virtual-machine:~/hadoop-1.2. ...
- php编译报错 configure: error: Please reinstall the BZip2 distribution
yum install -y bzip2 bzip2-devel