1.圖片擴散 動畫
Point size = m_player->getPosition(); auto emitter = CCParticleGalaxy::create(); emitter->retain(); emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage("GUIGameZhangai3.png")); emitter->setPosition(Point(size.x, size.y - 61/2)); emitter->setDuration(0.1); emitter->setAutoRemoveOnFinish(true); this->addChild(emitter, 10);
破碎效果 (不知道爲啥,這個效果卡的一B) this
ActionInterval* shatteredTiles = ShatteredTiles3DDemo::create(1); NodeGrid* _gridNodeTarget; _gridNodeTarget = NodeGrid::create(); _gridNodeTarget->runAction(shatteredTiles); this->addChild(_gridNodeTarget,10); auto playerSp = Sprite::create("GUIChaoren2.png"); _gridNodeTarget->addChild(playerSp, 10); playerSp->setPosition(sp);
第一次接觸粒子系統,之前遊戲裏面的一些小特效,像製做動畫同樣,是採用一幀一幀的切出來的,因爲這種特效,變化無常,切出來的幀,都很是的大,也很耗內存,一下就內存溢出了......呵呵~ 主要是之前都沒有接觸過... 如今接觸了,之後遊戲就能夠用到了...開心! spa
//建立一個CCParticleSystem粒子系統
CCParticleSystem* ignore = CCParticleSystemQuad::create("Particles/SmallSun.plist");
//第一種建立節點方式
CCNode *parent1 = CCNode::create();//建立一個節點
//第二種建立節點方式
CCNode *parent2 = CCParticleBatchNode::create(ignore->getTexture()); code
//第一種:建立一個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()); get
下面是一些經常使用設置:
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裏面) string
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已經爲咱們提供了很是多的粒子系統效果:
CCParticleExplosion爆炸 CCParticleFire 火 CCParticleFireworks煙火 CCParticleFlower花 CCParticleGalaxy 銀河 CCParticleMeteor 流行 CCParticleRain 下雨 CCParticleSmoke 下雪 CCParticleSnow 炊煙 CCParticleSpiral 螺旋 CCParticleSun 太陽焰