Cocos2d-x 粒子系统详解

              Cocos2d-x 粒子系统详解

  

cocos2dx已经为我们提供了非常多的粒子系统效果:

                      1、 CCParticleExplosion爆炸
                      2、 CCParticleFire 火
                      3、CCParticleFireworks烟火
                      4、CCParticleFlower花
                      5、CCParticleGalaxy 银河
                      6、CCParticleMeteor 流星
                      7、CCParticleRain 下雨
                      8、CCParticleSmoke 下雪
                      9、CCParticleSnow 炊烟
                      10、CCParticleSpiral 螺旋
                      11、CCParticleSun 太阳焰

自定义一个CCParticleSystem粒子系统
  CCParticleSystem* ignore = CCParticleSystemQuad::create("Particles/SmallSun.plist");
  //第一种创建节点方式
  CCNode *parent1 = CCNode::create();//创建一个节点
  //第二种创建节点方式
  CCNode *parent2 = CCParticleBatchNode::create(ignore->getTexture());

  第一种:创建一个CCParticleSystemQuad系统:每个粒子用4个点(Quad,矩形)表示的粒子系统

  CCParticleSystemQuad *emitter = CCParticleSystemQuad::create("SmallSun.plist");//SmallSun.plist为用粒子系统编辑工具生成的文件

  第二种:创建CCParticleSystemQuad系统

  CCParticleSystemQuad * m_emitter = new CCParticleSystemQuad();

  std::string filename = "Particles/" +“粒子资源文件名字”+ ".plist";
  m_emitter->initWithFile(filename.c_str());

常用设置:
  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);//完成后制动移除

  parent1->addChild(emitter1, 0, 1);将粒子系统添加到节点(也可以直接将其添加到一个背景精灵CCSprite里面)
  layer->addChild(parent1, 10, 1000+i);然后在添加到层里面

CCParticleSystem中的常用设置参数表:

         //重力和方向的向量
        CCPoint gravity;
        //速度
        float speed;
        //粒子的速度差异
        float speedVar;
        //粒子的切线加速度
        float tangentialAccel;
        //粒子间的切线加速度差异
        float tangentialAccelVar;
        //粒子的径向加速度
        float radialAccel;
        //粒子间的径向加速度差异
        float radialAccelVar;

        //粒子开始半径
        float startRadius;
        //粒子间开始半径差异
        float startRadiusVar;

        //粒子结束半径
        float endRadius;
        //粒子间结束半径差异
        float endRadiusVar;            
        //粒子每秒的旋转角度
        float rotatePerSecond;
        //粒子间每秒的旋转角度差异        

        float rotatePerSecondVar;
 


Cocos2d-x 粒子系统详解

上一篇:echo 命令


下一篇:Photoshop将树林美女图片调制出甜美的粉绿色效果