1 粒子
示例
2 类图关系
3 系统原生粒子
CCParticleSystem
所有粒子系统的父类
CCParticleSystemPoint、
CCParticleSystemQuad
点粒子和方形粒子系统,都继承了CCParticleSystem的所有属性
CCParticleExplosion
爆炸粒子效果
CCParticleFireworks
烟花粒子效果
CCParticleFire
火焰粒子效果
CCParticleMetepr
流行粒子效果
CCParticleSpiral
漩涡粒子效果
CCParticleSnow
雪粒子效果
CCParticleSmoke
烟粒子效果
CCParticleSun
太阳粒子效果
CCParticleRain
雨粒子效果
4 代码
//CCParticleExplosion * particle = CCParticleExplosion::create();
//CCParticleFireworks * particle = CCParticleFireworks::create();
//CCParticleFire * particle = CCParticleFire::create();
//CCParticleMeteor * particle = CCParticleMeteor::create();
//CCParticleSpiral * particle = CCParticleSpiral::create();
//CCParticleSnow * particle = CCParticleSnow::create();
//CCParticleSmoke * particle = CCParticleSmoke::create();
//CCParticleSun * particle = CCParticleSun::create();
CCParticleRain * particle = CCParticleRain::create();
particle->setPosition(ccp(240, 160));
addChild(particle);
5 手动制作粒子系统
粒子编译器软件
编辑好后生成xx.plist文件
CCParticleSystemQuad * particle = CCParticleSystemQuad::create("ring.plist");
particle->setPosition(ccp(240, 160));
addChild(particle);
particle->setDuration(4);
6 案例
爆炸粒子效果
T21Particle.h
#ifndef __T12Particle_H__
#define __T12Particle_H__
#include "cocos2d.h"
#include "TBack.h"
USING_NS_CC;
class T21Particle :public TBack
{
public:
static CCScene * scene();
CREATE_FUNC(T21Particle);
bool init();
};
#endif
T21Particle.cpp
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
//爆炸粒子效果
CCParticleExplosion * particle = CCParticleExplosion::create();
addChild(particle);
return true;
}
运行效果:
烟花效果
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
//烟花效果
CCParticleFireworks * particle = CCParticleFireworks::create();
//设置位置显示位置
particle->setPosition(ccp(winSize.width / 2,winSize.height / 4));
//设置时间间隔
particle->setDuration(20);
addChild(particle);
return true;
}
运行结果:
火焰效果:
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
//火焰效果
CCParticleFire * particle = CCParticleFire::create();
//设置位置显示位置
particle->setPosition(ccp(winSize.width / 2,winSize.height / 4));
//设置时间间隔
particle->setDuration(20);
addChild(particle);
return true;
}
流星效果:
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
//流星粒子效果
CCParticleMeteor * particle = CCParticleMeteor::create();
//设置位置显示位置
particle->setPosition(ccp(winSize.width / 2,winSize.height / 4));
//设置时间间隔
particle->setDuration(20);
addChild(particle);
return true;
}
运行效果:
漩涡粒子效果
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
//流行粒子效果
CCParticleSpiral * particle = CCParticleSpiral::create();
//设置位置显示位置
particle->setPosition(ccp(winSize.width / 2,winSize.height / 4));
//设置时间间隔
particle->setDuration(20);
addChild(particle);
return true;
}
运行效果:
雪花效果:
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
//雪花效果
CCParticleSnow * particle = CCParticleSnow::create();
//设置位置显示位置
particle->setPosition(ccp(winSize.width / 2,winSize.height));
//设置时间间隔
particle->setDuration(20);
addChild(particle);
return true;
}
运行效果:
烟雾效果:
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
//烟雾效果
CCParticleSmoke * particle = CCParticleSmoke::create();
//设置位置显示位置
particle->setPosition(ccp(winSize.width / 2,winSize.height/3));
//设置时间间隔
particle->setDuration(20);
addChild(particle);
return true;
}
运行结果:
太阳效果
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
//太阳效果
CCParticleSun * particle = CCParticleSun::create();
//设置位置显示位置
particle->setPosition(ccp(winSize.width / 2,winSize.height/3));
//设置时间间隔
particle->setDuration(20);
addChild(particle);
return true;
}
运行效果:
下雨效果
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
//细雨效果
CCParticleRain * particle = CCParticleRain::create();
//particle->setRotation(90);
//设置位置显示位置
particle->setPosition(ccp(winSize.width / 2,winSize.height));
//设置时间间隔
particle->setDuration(20);
addChild(particle);
return true;
}
运行结果:
7 通过自定义的.plist文件作出粒子效果
案例:
环形效果
#include "T21Particle.h"
#include "AppMacros.h"
CCScene * T21Particle::scene()
{
CCScene * scene = CCScene::create();
T21Particle * layer = T21Particle::create();
scene->addChild(layer);
return scene;
}
bool T21Particle::init()
{
TBack::init();
CCParticleSystemQuad * particle = CCParticleSystemQuad::create("ring.plist");
//设置位置显示位置
particle->setPosition(ccp(winSize.width / 2,winSize.height / 2));
//设置时间间隔
particle->setDuration(20);
addChild(particle);
return true;
}
运行结果: