cocos2d-x学习之粒子系统3

五、纹理Texture
如果没有贴图的话,所有粒子将会是单调的色块。粒子的贴图没有具体限制,可以是灰度图,也可以是一张具体的图片。但要小于64x64pixel
 
六、cocos2d-x实现Particle System
第一种方法:
CCParticleSystem* m_emitter;
  m_emitter= CCParticleFireworks::node();
  m_emitter->retain();
  this ->addChild(m_emitter,10);
  m_emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage(“image.png”));
  m_emitter->setPosition(ccp(489,320));

第二种方法:
CCParticleSystem* m_emitter;
m_emitter = new CCParticleSystemQuad();
  m_emitter->initWithTotalParticles(50);
  this ->addChild(m_emitter,10);
  m_emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage(s_stars1));
  m_emitter->setDuration(-1);
    
    //gravity
  m_emitter->setGravity(CCPointZero);
    
    //angle
  m_emitter->setAngle(90);
  m_emitter->setAngleVar(360);
    
    //speed of particles
  m_emitter->setSpeed(160);
  m_emitter->setSpeedVar(20);
    
    //radial
  m_emitter->setRadialAccel(-120);
  m_emitter->setRadialAccelVar(0);
    
    //tagential
  m_emitter->setTangentialAccel(30);
  m_emitter->setTangentialAccelVar(0);
    
    //emitter position
  m_emitter->setPosition(CCPointMake(160,240) );
  m_emitter->setPosVar(CCPointZero);
    
    //life of particles
  m_emitter->setLife(4);
  m_emitter->setLifeVar(1);
    
    //spin of particles
  m_emitter->setStartSpin(0);
  m_emitter->setStartSizeVar(0);
  m_emitter->setEndSpin(0);
  m_emitter->setEndSpinVar(0);
    
    //color of particles
  ccColor4FstartColor = {0.5f, 0.5f, 0.5f, 1.0f};
  m_emitter->setStartColor(startColor);
    
  ccColor4FstartColorVar = {0.5f, 0.5f, 0.5f, 1.0f};
  m_emitter->setStartColorVar(startColorVar);
    
  ccColor4FendColor = {0.1f, 0.1f, 0.1f, 0.2f};
  m_emitter->setEndColor(endColor);
    
  ccColor4FendColorVar = {0.1f, 0.1f, 0.1f, 0.2f};
  m_emitter->setEndColorVar(endColorVar);
    
    //size, in pixels
  m_emitter->setStartSize(80.0f);
  m_emitter->setStartSizeVar(40.0f);
  m_emitter->setEndSize(kParticleStartSizeEqualToEndSize);
    
    //emits per second
  m_emitter->setEmissionRate(m_emitter->getTotalParticles()/m_emitter->getLife());
    
    //additive
  m_emitter->setIsBlendAdditive( true );

第三种方法:
CCParticleSystemQuad * system = new CCParticleSystemQuad();
system ->initWithFile( "Images/SpinningPeas.plist" ); //plist文件可以通过例子编辑器获得
system ->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage( "Images/particles.png" )
        ,CCRectMake(0,0,32,32));
addChild( system ,10);
system ->setPosition
 

-- CCParticleSystem(所有粒子系统的父类)

-- CCParticleSystemPoint、CCParticleSystemQuad (点粒子和方形粒子系统,都继承了CCParticleSystem的所有属性)

    -- CCParticleExplosion       (爆炸粒子效果)

    -- CCParticleFireworks       (烟花粒子效果)

    -- CCParticleFire               (火焰粒子效果)

    -- CCParticleFlower           (花束粒子效果)

    -- CCParticleGalaxy          (星系粒子效果)

    -- CCParticleMeteor          (流星粒子效果)

    -- CCParticleSpiral           (漩涡粒子效果)

    -- CCParticleSnow            (雪粒子效果)

    -- CCParticleSmoke          (烟粒子效果)

    -- CCParticleSun              (太阳粒子效果)

    -- CCParticleRain             (雨粒子效果)


你可能感兴趣的:(cocos2d-x学习之粒子系统3)