Particle.h
#ifndef?_Particle_
#定義?_Particle_
#包含?" cocos2d.h "
classParticleBoma?:?公共?cocos2d::CCParticleSystemQuad
{
公共:
particle boma();
虛擬的?~ particle boma();
布爾?init();
//cocos中定義的虛函數
虛擬的?布爾?initWithTotalParticles(無符號?int?number of particles);
靜電?particle boma * create();
靜電?ParticleBoma?* node();
受保護:
私人:
};
#endif
粒子. cpp
#包含?" Particle.h "
使用_ NS _ CC
ParticleBoma::ParticleBoma()
{
}
ParticleBoma::~ParticleBoma()
{
}
布爾?ParticleBoma::init()
{
回歸?initWithTotalParticles(1500);
}
//實現初始化的壹些方法
布爾?particle boma::initWithTotalParticles(?未簽名?int?numberofParticles?)
{
如果(?CCParticleSystemQuad::initWithTotalParticles(number of particles)?)
{
//?持續時間?設定此粒子效果的時間。如果設置為kCCParticleDurationInfinity,則表示粒子效果是永遠的,其計時單位是秒。
m_fDuration?= 0.3f
//?重力?方式
m_nEmitterMode?=?kCCParticleModeGravity
//?重力?模式:?重力
modeA .重力?=?ccp(0,0);
//?重力?模式:?定義粒子的發射速度。
模特。速度?=?80;
modeA.speedVar?=?0;
//?重力?模式:?設置徑向加速度
modeA.radialAccel?=?0;
modeA.radialAccelVar?=?0;
//?重力?模式:?設置切向加速度
modeA.tangentialAccel?=?0;
modeA.tangentialAccelVar?=?0;
//?角
方了嗎?=?180;
m_fAngleVar?=?360;
//?發射器?位置
CCSize?winSize?=?cc director::shared director()-& gt;getWinSize();
這-& gt;set position(CCP(winsize . width/2,winsize . height/2));
m_tPosVar?=?CCPointZero
//?人生?的?粒子?生命周期的長度
m_fLife?=?2;
m_fLifeVar?=?1;
//?大小,?在?下面兩句pixel的意思是粒子開始出現時的大小是在20.0f到30.0f之間隨機生成的。
m_fStartSize?=?20.0f
m_fStartSizeVar?=?10.0 f;
m_fEndSize?=?kCCParticleStartSizeEqualToEndSize;
//?散發?per?第二
m_fEmissionRate?=?m _ uTotalParticles/m _ fLife;
//?顏色?的?粒子設置粒子的初始顏色和結束時的顏色演變過程。
m_tStartColor.r?=?0.00f
m_tStartColor.g?=?1.00 f;
m_tStartColor.b?=?0.00f
m_tStartColor.a?=?1.0f;
m_tStartColorVar.r?=?1.0f;
m_tStartColorVar.g?=?1.0f;
m_tStartColorVar.b?=?0.0f
m_tStartColorVar.a?=?1.0f;
m_tEndColor.r?=?0.0f
m_tEndColor.g?=?0.0f
m_tEndColor.b?=?0.0f
m_tEndColor.a?=?0.01f;
m_tEndColorVar.r?=?0.0f
m_tEndColorVar.g?=?0.0f
m_tEndColorVar.b?=?0.0f
m_tEndColorVar.a?=?0.0f
//?添加劑
這-& gt;setblendeditive(true);
回歸?真實;
}
回歸?假的;
}
ParticleBoma?*ParticleBoma::create()
{
ParticleBoma?*?particleBoma?=?新的?particle boma();
如果?(particle boma-& gt;init())
{
particle boma-& gt;autorelease();
回歸?particleBoma
}
CC _ SAFE _ DELETE(particle boma);
回歸?NULL
}
ParticleBoma?*?ParticleBoma::node()
{
回歸?create();
}
然後我們可以在HelloWorldScene.cpp文件中使用這個粒子效果。
作廢?HelloWorld::onEnter()
{
cc layer::onEnter();
重播(空);
}
//廢用的主要方法
作廢?HelloWorld::Replay(CCObject*?pSender)
{
m_emitter?=?particle boma::create();
m _ emitter->;retain();
這-& gt;addChild(m_emitter,10);
m _ emitter->;set texture(CCTextureCache::sharedTextureCache()-& gt;addImage(" 16 . png ");
//這個粒子效果可以部分設置。CPP以上或以下。如果下面使用了set方法,則值設置為partial。CPP將被覆蓋。
m _ emitter->;setLifeVar(0);
//以秒為單位設置粒子的生命周期長度。
m _ emitter->;setLife(1.0f);
m _ emitter->;set speed(100);
m _ emitter->;setSpeedVar(40);
//粒子的發射率?每秒1000
m _ emitter->;setEmissionRate(1000);
CCSize?尺寸?=?cc director::shared director()-& gt;getWinSize();
m _ emitter->;setPosition(ccp(大小.寬度/2,大小.高度/2));
}