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 手动制作粒子系统
粒子编译器软件
CCParticleSystemQuad * particle = CCParticleSystemQuad::create("ring.plist"); particle->setPosition(ccp(240,160)); addChild(particle); particle->setDuration(4); |
6 案例
爆炸粒子效果 |
T21Particle.h |
#ifndef@H_502_917@ __T12Particle_H__ #define@H_502_917@ __T12Particle_H__ #include@H_502_917@ "cocos2d.h" #include@H_502_917@ "TBack.h" USING_NS_CC@H_502_917@; class@H_502_917@ T21Particle@H_502_917@ :public@H_502_917@ TBack @H_502_917@{ public@H_502_917@: @H_502_917@ static@H_502_917@ CCScene@H_502_917@ * scene@H_502_917@(); @H_502_917@ CREATE_FUNC@H_502_917@(T21Particle@H_502_917@); @H_502_917@ bool@H_502_917@ init@H_502_917@(); @H_502_917@ @H_502_917@}; @H_502_917@ #endif |
T21Particle.cpp |
#include@H_502_917@ "T21Particle.h" #include@H_502_917@ "AppMacros.h" @H_502_917@ CCScene@H_502_917@ * T21Particle@H_502_917@::scene@H_502_917@() @H_502_917@{ @H_502_917@ scene@H_502_917@ = CCScene@H_502_917@::create@H_502_917@(); @H_502_917@ T21Particle@H_502_917@ * layer@H_502_917@ = create@H_502_917@(); @H_502_917@ scene@H_502_917@->addChild@H_502_917@(layer@H_502_917@); @H_502_917@ return@H_502_917@ scene@H_502_917@; @H_502_917@} @H_502_917@ bool@H_502_917@ init@H_502_917@() @H_502_917@{ @H_502_917@ TBack@H_502_917@::init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleExplosion@H_502_917@ * particle@H_502_917@ = CCParticleExplosion@H_502_917@::create@H_502_917@(); @H_502_917@ @H_502_917@ addChild@H_502_917@(particle@H_502_917@); @H_502_917@ @H_502_917@ return@H_502_917@ true@H_502_917@; @H_502_917@} |
运行效果:
|
烟花效果 |
init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleFireworks@H_502_917@ * particle@H_502_917@ = CCParticleFireworks@H_502_917@::create@H_502_917@(); @H_502_917@ @H_502_917@ particle@H_502_917@->setPosition@H_502_917@(ccp@H_502_917@(winSize@H_502_917@.width@H_502_917@ / 2,winSize@H_502_917@.height@H_502_917@ / 4)); @H_502_917@ //设置时间间隔 @H_502_917@ particle@H_502_917@->setDuration@H_502_917@(20); @H_502_917@ addChild@H_502_917@(particle@H_502_917@); @H_502_917@ @H_502_917@ return@H_502_917@ true@H_502_917@; @H_502_917@} |
运行结果:
|
火焰效果: |
init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleFire@H_502_917@ * particle@H_502_917@ = CCParticleFire@H_502_917@:: |
流星效果: |
init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleMeteor@H_502_917@ * particle@H_502_917@ = CCParticleMeteor@H_502_917@:: 运行效果: |
漩涡粒子效果 |
init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleSpiral@H_502_917@ * particle@H_502_917@ = CCParticleSpiral@H_502_917@:: 雪花效果: |
init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleSnow@H_502_917@ * particle@H_502_917@ = CCParticleSnow@H_502_917@::winSize@H_502_917@.height@H_502_917@)); @H_502_917@ //设置时间间隔 |
init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleSmoke@H_502_917@ * particle@H_502_917@ = CCParticleSmoke@H_502_917@::winSize@H_502_917@.height@H_502_917@/3)); @H_502_917@ //设置时间间隔 |
太阳效果 |
init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleSun@H_502_917@ * particle@H_502_917@ = CCParticleSun@H_502_917@:: 下雨效果 |
init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleRain@H_502_917@ * particle@H_502_917@ = CCParticleRain@H_502_917@::create@H_502_917@(); @H_502_917@ //particle->setRotation(90); @H_502_917@ |
案例:
环形效果 |
init@H_502_917@(); @H_502_917@ @H_502_917@ CCParticleSystemQuad@H_502_917@ * particle@H_502_917@ = CCParticleSystemQuad@H_502_917@::create@H_502_917@("ring.plist"@H_502_917@); @H_502_917@ @H_502_917@ particle@H_502_917@->winSize@H_502_917@.height@H_502_917@ / 2)); @H_502_917@ //设置时间间隔 |