cocos2dx3.0粒子特效

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 太陽焰

相關文章
相關標籤/搜索