您的位置:首页 > 产品设计 > UI/UE

CCParticleSystem粒子系统 quick版

2014-07-04 17:42 399 查看
cocos2dx已经为我们提供了非常多的粒子系统效果: 

-- CCParticleSystem(所有粒子系统的父类)

-- CCParticleSystemPoint、CCParticleSystemQuad (点粒子和方形粒子系统,都继承了CCParticleSystem的所有属性)

-- CCParticleExplosion (爆炸粒子效果)

-- CCParticleFireworks (烟花粒子效果)

-- CCParticleFire (火焰粒子效果)

-- CCParticleFlower (花束粒子效果)

-- CCParticleGalaxy (星系粒子效果)

-- CCParticleMeteor (流星粒子效果)

-- CCParticleSpiral (漩涡粒子效果)

-- CCParticleSnow (雪粒子效果)

-- CCParticleSmoke (烟粒子效果)

-- CCParticleSun (太阳粒子效果)

-- CCParticleRain (雨粒子效果)

在scene中直接使用下面的代码就可以实现火焰粒子效果

local particle = CCParticleFire:create()
self:addChild(particle)


同时我们还可以使用 ParticleDesigner 来设计自己的粒子效果

点击save as 按钮



file format 选择cocos2d的格式 然后输入保存的文件名  plist文件和png的名字都要



再把生成的两个文件拷贝到项目中
然后在项目中使用

CCTextureCache:sharedTextureCache():addImage('particleTexture.png')
local  particle =  CCParticleSystemQuad:create('particle.plist')
particle:setPosition(display.cx, display.cy)
self:addChild(particle)


下面是C++版的粒子系统的使用 参考别人的博客

转自:http://blog.csdn.net/aa4790139/article/details/8124781

第一次接触粒子系统,以前游戏里面的一些小特效,像制作动画一样,是采用一帧一帧的切出来的,由于这种特效,变化无常,切出来的帧,都非常的大,也很耗内存,一下就内存溢出了......呵呵~  主要是以前都没有接触过... 现在接触了,以后游戏就可以用到了...开心!



//创建一个CCParticleSystem粒子系统
CCParticleSystem* ignore = CCParticleSystemQuad::create("Particles/SmallSun.plist");
//第一种创建节点方式
CCNode *parent1 = CCNode::create();//创建一个节点
//第二种创建节点方式
CCNode *parent2 = CCParticleBatchNode::create(ignore->getTexture());

//第一种:创建一个CCParticleSystemQuad系统:每个粒子用4个点(Quad,矩形)表示的粒子系统

CCParticleSystemQuad *emitter = CCParticleSystemQuad::create("Particles/SmallSun.plist");

//第二种:创建CCParticleSystemQuad系统
m_emitter = new CCParticleSystemQuad();

std::string filename = "Particles/" +“粒子资源文件名字”+ ".plist";
m_emitter->initWithFile(filename.c_str());


下面是一些常用设置:

emitter1->setStartColor(ccc4f(1,0,0,1));//设置粒子RGBA值
emitter1->setBlendAdditive(false);//是否添加混合
emitter1->setPosition(ccp( s.width/2-30,    s.height/2+60*neg));//设置发射粒子的位置
emitter->setAutoRemoveOnFinish(true);//完成后制动移除
//将粒子系统添加到节点(也可以直接将其添加到一个背景精灵CCSprite里面)

parent1->addChild(emitter1, 0, 1);
//然后在添加到层里面
layer->addChild(parent1, 10, 1000+i);


CCParticleSystem中的常用设置参数表:

struct {
//重力和方向的向量
CCPoint gravity;
//速度
float speed;
//粒子的速度差异
float speedVar;
//粒子的切线加速度
float tangentialAccel;
//粒子间的切线加速度差异
float tangentialAccelVar;
//粒子的径向加速度
float radialAccel;
//粒子间的径向加速度差异
float radialAccelVar;
} modeA;

struct {

//粒子开始半径
float startRadius;
//粒子间开始半径差异
float startRadiusVar;

//粒子结束半径
float endRadius;
//粒子间结束半径差异
float endRadiusVar;
//粒子每秒的旋转角度
float rotatePerSecond;
//粒子间每秒的旋转角度差异

float rotatePerSecondVar;
} modeB;


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cocos2dx 粒子效果