粒子效果

粒子编辑器可以很方便的生成我们需要的效果,在Windows平台上,现在免费的只有一款软件ParticleEditor。

下载地址:http://pan.baidu.com/share/link?shareid=1310206589&uk=3189484501

 在cocos2d-x引擎中,粒子系统使用CCParticleSystem来表示,又分为两大类,重力式粒子系统CCParticleSystemPoint和放射式粒子系统CCParticleSystemQuad,两者在功能上略有不同,CCParticleSystemQuad支持围绕轴线旋转,CCParticleSystemQuad支持更多粒子对象和缩放,重力式故名思义,系统中存在重力,重力大小可以自己定义,包括的参数有:重心,速度,方向,尺寸,存在时间,颜色,绕自己轴心旋转角度,角加速度,线加速度,半径,分组模式(是否随重心移动),放射性系统恰恰相反,不存在重力,包括的参数有:重心,方向,尺寸,存在时间,颜色,绕自己轴心旋转角度,绕重心为轴心旋转角度,半径,分组模式(是否随重心移动)。


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

CCParticleExplosion爆炸
CCParticleFire 火
CCParticleFireworks烟火
CCParticleFlower花
CCParticleGalaxy 银河
CCParticleMeteor 流行
CCParticleRain 下雨
CCParticleSmoke 下雪
CCParticleSnow 炊烟
CCParticleSpiral 螺旋
CCParticleSun 太阳焰



以下是3个cocos2d-x中自带的粒子效果:




下雪的粒子效果

1
2
3
4
CCParticleSnow* snow = CCParticleSnow::create();
        snow->setPosition(ccp(230, 200));
        snow->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage( "snow.png" ), CCRectMake(0, 0, 32, 32));
        this ->addChild(snow);


火焰粒子效果

1
2
3
4
CCParticleFire* fire = CCParticleFire::create();
        fire->setPosition(ccp(230, 200));
        fire->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage( "fire.png" ), CCRectMake(0, 0, 32, 32));
        this ->addChild(fire);


花束效果

1
2
3
4
CCParticleFireworks* fireWorks = CCParticleFireworks::create();
        fireWorks->setPosition(ccp(230, 200));
        fireWorks->setTextureWithRect(CCTextureCache::sharedTextureCache()->addImage( "fire.png" ), CCRectMake(0, 0, 32, 32));
        this ->addChild(fireWorks);


放射式粒子系统CCParticleSystemQuad


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
CCParticleSystemQuad *m_emitter= new CCParticleSystemQuad();
        m_emitter->initWithTotalParticles(900); //900个粒子对象
        //设置图片
        m_emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage( "snow.png" ));
        //设置发射粒子的持续时间-1表示一直发射,0没有意义,其他值表示持续时间
        m_emitter->setDuration(9);
        //设置中心方向,这个店是相对发射点,x正方向为右,y正方向为上
        m_emitter->setGravity(CCPoint(0,-240));
                      
                      
        //设置角度,角度的变化率
        m_emitter->setAngle(90);
        m_emitter->setAngleVar(360);
                      
                      
        //设置径向加速度,径向加速度的变化率
        m_emitter->setRadialAccel(50);
        m_emitter->setRadialAccelVar(0);
                      
        //设置粒子的切向加速度,切向加速度的变化率
        m_emitter->setTangentialAccel(30);
        m_emitter->setTangentialAccelVar(0);
                      
                      
        //设置粒子的位置,位置的变化率
        m_emitter->setPosition(CCPoint(400,500));
        m_emitter->setPosVar(CCPoint(400,0));
                      
        //设置粒子声明,生命的变化率
        m_emitter->setLife(7);
        m_emitter->setLifeVar(2);
                      
                      
        //设置粒子开始的自旋转速度,开始自旋转速度的变化率
        m_emitter->setStartSpin(30);
        m_emitter->setStartSpinVar(60);
                      
        //设置结束的时候的自旋转以及自旋转的变化率
        m_emitter->setEndSpin(60);
        m_emitter->setEndSpinVar(60);
                      
        ccColor4F cc;
        cc.a=1.0f;
        cc.b=255.0f;
        cc.g=255.0f;
        cc.r=255.0f;
        ccColor4F cc2;
        cc2.a=0;
        cc2.b=0;
        cc2.g=0;
        cc2.r=0;
        //设置开始的时候的颜色以及颜色的变化率
        m_emitter->setStartColor(cc);
        m_emitter->setStartColorVar(cc2);
                      
                      
                      
        //设置结束的时候的颜色以及颜色的变化率
        m_emitter->setEndColor(cc);
        m_emitter->setEndColorVar(cc2);
                      
        //设置开始时候粒子的大小,以及大小的变化率
        m_emitter->setStartSize(30);
        m_emitter->setStartSizeVar(0);
                      
                      
        //设置粒子结束的时候的大小,以及大小的变化率
        m_emitter->setEndSize(20.0f);
        m_emitter->setEndSizeVar(0);
                      
        //设置每秒钟产生粒子的数目
        m_emitter->setEmissionRate(100);
                      
        //设置到背景上
        addChild(m_emitter);


代码下载: http://pan.baidu.com/share/link?shareid=2817033054&uk=3189484501

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值