• 6 cocos2dx粒子效果,类图关系,系统原生粒子和自己定义粒子效果,粒子编译器软件,爆炸粒子效果,烟花效果,火焰效果,流星效果,漩涡粒子效果,雪花效果,烟雾效果,太阳效果,下雨效果


    

    1 粒子

    演示样例

    2 类图关系

    3 系统原生粒子

    CCParticleSystem

    全部粒子系统的父类

    CCParticleSystemPoint

    CCParticleSystemQuad

    点粒子和方形粒子系统,都继承了CCParticleSystem的全部属性

    CCParticleExplosion

    爆炸粒子效果

    CCParticleFireworks

    烟花粒子效果

    CCParticleFire

    火焰粒子效果

    CCParticleMetepr

    流行粒子效果

    CCParticleSpiral

    漩涡粒子效果

    CCParticleSnow

    雪粒子效果

    CCParticleSmoke

    烟粒子效果

    CCParticleSun

    太阳粒子效果

    CCParticleRain

    雨粒子效果

    4 代码

    //CCParticleExplosion * particle = CCParticleExplosion::create();

    //CCParticleFireworks * particle = CCParticleFireworks::create();

    //CCParticleFire * particle = CCParticleFire::create();

    //CCParticleMeteor * particle = CCParticleMeteor::create();

    //CCParticleSpiral * particle = CCParticleSpiral::create();

    //CCParticleSnow * particle = CCParticleSnow::create();

    //CCParticleSmoke * particle = CCParticleSmoke::create();

    //CCParticleSun * particle = CCParticleSun::create();

    CCParticleRain * particle = CCParticleRain::create();

     

    particle->setPosition(ccp(240, 160));

    addChild(particle);

    5 手动制作粒子系统

    粒子编译器软件

    编辑好后生成xx.plist文件

    CCParticleSystemQuad * particle = CCParticleSystemQuad::create("ring.plist");

    particle->setPosition(ccp(240, 160));

    addChild(particle);

    particle->setDuration(4);

    6 案例

    爆炸粒子效果

    T21Particle.h

    #ifndef __T12Particle_H__

    #define __T12Particle_H__

    #include "cocos2d.h"

    #include "TBack.h"

    USING_NS_CC;

    class T21Particle :public TBack

    {

    public:

        static CCScene * scene();

        CREATE_FUNC(T21Particle);

        bool init();

     

    };

     

    #endif

    T21Particle.cpp

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        //爆炸粒子效果

        CCParticleExplosion * particle = CCParticleExplosion::create();

       

        addChild(particle);

       

        return true;

    }

    执行效果:

    烟花效果

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        //烟花效果

        CCParticleFireworks * particle = CCParticleFireworks::create();

       

        //设置位置显示位置

        particle->setPosition(ccp(winSize.width / 2,winSize.height / 4));

        //设置时间间隔

        particle->setDuration(20);

        addChild(particle);

       

        return true;

    }

    执行结果:

    火焰效果:

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        //火焰效果

        CCParticleFire * particle = CCParticleFire::create();

       

        //设置位置显示位置

        particle->setPosition(ccp(winSize.width / 2,winSize.height / 4));

        //设置时间间隔

        particle->setDuration(20);

        addChild(particle);

       

        return true;

    }

    流星效果:

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        //流星粒子效果

        CCParticleMeteor * particle = CCParticleMeteor::create();

       

        //设置位置显示位置

        particle->setPosition(ccp(winSize.width / 2,winSize.height / 4));

        //设置时间间隔

        particle->setDuration(20);

        addChild(particle);

       

        return true;

    }

    执行效果:

    漩涡粒子效果

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        //流行粒子效果

        CCParticleSpiral * particle = CCParticleSpiral::create();

       

        //设置位置显示位置

        particle->setPosition(ccp(winSize.width / 2,winSize.height / 4));

        //设置时间间隔

        particle->setDuration(20);

        addChild(particle);

       

        return true;

    }

    执行效果:

    雪花效果:

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        //雪花效果

        CCParticleSnow * particle = CCParticleSnow::create();

       

        //设置位置显示位置

        particle->setPosition(ccp(winSize.width / 2,winSize.height));

        //设置时间间隔

        particle->setDuration(20);

        addChild(particle);

       

        return true;

    }

    执行效果:

    烟雾效果:

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        //烟雾效果

        CCParticleSmoke * particle = CCParticleSmoke::create();

       

        //设置位置显示位置

        particle->setPosition(ccp(winSize.width / 2,winSize.height/3));

        //设置时间间隔

        particle->setDuration(20);

        addChild(particle);

       

        return true;

    }

    执行结果:

    太阳效果

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        //太阳效果

        CCParticleSun * particle = CCParticleSun::create();

       

        //设置位置显示位置

        particle->setPosition(ccp(winSize.width / 2,winSize.height/3));

        //设置时间间隔

        particle->setDuration(20);

        addChild(particle);

       

        return true;

    }

    执行效果:

    下雨效果

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        //细雨效果

        CCParticleRain * particle = CCParticleRain::create();

        //particle->setRotation(90);

       

        //设置位置显示位置

        particle->setPosition(ccp(winSize.width / 2,winSize.height));

        //设置时间间隔

        particle->setDuration(20);

        addChild(particle);

       

        return true;

    }

    执行结果:

    7 通过自己定义的.plist文件作出粒子效果

    案例:

    环形效果

    #include "T21Particle.h"

    #include "AppMacros.h"

     

    CCScene * T21Particle::scene()

    {

        CCScene * scene = CCScene::create();

        T21Particle * layer = T21Particle::create();

        scene->addChild(layer);

        return scene;

    }

     

    bool T21Particle::init()

    {

        TBack::init();

       

        CCParticleSystemQuad * particle = CCParticleSystemQuad::create("ring.plist");

       

        //设置位置显示位置

        particle->setPosition(ccp(winSize.width / 2,winSize.height / 2));

        //设置时间间隔

        particle->setDuration(20);

        addChild(particle);

       

        return true;

    }

    执行结果:

     

  • 相关阅读:
    第21周六
    第21周五
    第21周四
    第21周三
    C/C++中各种类型int、long、double、char表示范围(最大最小值)
    插入排序
    面向对象的5个基本设计原则
    红黑树
    Cocos2d-x学习笔记(六) 定时器Schedule的简单应用
    SNMP协议具体解释
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6713709.html
Copyright © 2020-2023  润新知