zoukankan      html  css  js  c++  java
  • CCParticleSystem粒子系统

    欢迎转载!转载时请注明出处:http://write.blog.csdn.net/postedit/8124781

    第一次接触粒子系统,以前游戏里面的一些小特效,像制作动画一样,是采用一帧一帧的切出来的,由于这种特效,变化无常,切出来的帧,都非常的大,也很耗内存,一下就内存溢出了......呵呵~  主要是以前都没有接触过... 现在接触了,以后游戏就可以用到了...开心!

      //创建一个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("Particles/SmallSun.plist");

      //第二种:创建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);//完成后制动移除
      //将粒子系统添加到节点(也可以直接将其添加到一个背景精灵CCSprite里面)

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

  • 相关阅读:
    springboot 踩坑之表单验证
    爬虫学习研究
    selenium+chrome知识
    每天学一点linux命令
    Javascript禁止子元素继承父元素的事件
    sass编译css(转自阮一峰)
    php配置虚拟主机的配置步骤(hosts、httpd.conf、vhosts.conf)1.配置本地的dns文件2.配置apache的主配置文件3.配置Apache的虚拟主机
    修改原代码定制bootstrap
    网页在线进行标准验证
    浏览器兼容性判定写法格式(ie)
  • 原文地址:https://www.cnblogs.com/ADaii/p/3834081.html
Copyright © 2011-2022 走看看