當前位置:外匯行情大全網 - 期貨行情 - cocos2dx拖尾效果是粒子做的嗎?

cocos2dx拖尾效果是粒子做的嗎?

首先,構建壹個簡單的HelloWorld程序,並將這兩個文件添加到其中。

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));

}

  • 上一篇:夢見墜落地面的預兆
  • 下一篇:脾酒罐下EXP040622是麽意思
  • copyright 2024外匯行情大全網