游戏开发者通常需要使用粒子系统来制作视觉特效。粒子系统能够发射大量细小的粒子并对他们进行渲染,而且效率要远高于渲染同样数目的精灵。粒子系统可以模拟下雨、火焰、雪、爆炸、蒸气拖尾以及其他多种视觉效果。 

    粒子系统由很多属性来驱动,这里的“很多”大概是30种左右,它们不仅影响单个粒子的外观和行为,而且也影响着整体的粒子效果。粒子效果是所有粒子一起工作所创造出的独有的视觉效果。单个粒子或是10个粒子是做不出火焰效果的,一般需要十几个甚至数百个粒子以正确的方式运行才能够制作出火焰效果。

    是不是被那三十多种属性吓到了,其实粒子效果的创建也不难,很多在没有接触或者是刚开始的时候都感觉粒子系统很难,确实你如果想要自己从无到有的创建一个粒子效果确实很难,但是如果你想学会使用它,并能够对别人的样板进行修改这是很简单的。下面我们先看看粒子效果如何创建:

第一种:直接使用系统自带的类创建

CCParticleSnow

        [snow setTexture:[[CCTextureCache sharedTextureCache] addImage:@"snow.png"]];

position = ccp(300, 350);

self addChild:snow];

运行效果图:


ios 特效 css_粒子效果

第二种:使用制作好的粒子效果文件(plist)创建

*snow = [CCParticleSystemQuad particleWithFile:@"snow.plist"];

snow.position = ccp(200, 350);

[self addChild:snow];

运行效果图:

ios 特效 css_生命周期_02

第三种:用代码创建

     

//创建粒子发射器
        CCParticleSystemQuad *snow = [[CCParticleSystemQuad alloc]  init];
        //设置创建粒子的最大数量
setTotalParticles:500];
//设置粒子图片
        [snow setTexture:[[CCTextureCache sharedTextureCache] addImage:@"snow.png"]];
        //设置发射粒子的持续时间,-1表示一直发射,0没有意义,其它值表示持续时间
setDuration:-1];
        //设置粒子发射方向,默认x正方向为右,y正方向为上
setGravity:CGPointMake(0, -100)];
        //设置粒子角度和角度的变化率
setAngle:0];
setAngleVar:10];
        //设置径向加速度和加速度变化率
setRadialAccel:0];
setRadialAccelVar:0];
        //设置切向加速度和加速度变化率
        [snow setTangentialAccel:30];
        [snow setTangentialAccelVar:0];
        //设置粒子的发射位置和位置变化率
setPosition:CGPointMake(200, 350)];
setPosVar:CGPointMake(300, 0)];
        //设置生命周期和生命周期变化率
setLife:4];
setLifeVar:1];
        //设置粒子开始的自旋转速度,开始自旋转速度的变化率
setStartSpin:30];
setStartSpinVar:60];
        //设置结束的时候的自旋转以及自旋转的变化率
setEndSpin:60];
setEndSpinVar:60];
         
//创建颜色
ccColor4F
a = 1.0f;
b = 255.0f;
g = 255.0f;
r = 255.0f;
ccColor4F
a = 0;
b = 0;
g = 0;
r = 0;
        //设置开始的时候的颜色以及颜色的变化率
setStartColor:cc];
setStartColorVar:cc2];
        //设置结束的时候的颜色以及颜色的变化率
setEndColor:cc];
setEndColorVar:cc2];
        //设置开始时候粒子的大小,以及大小的变化率
setStartSize:30];
setStartSizeVar:10];
        //设置粒子结束的时候的大小,以及大小的变化率
setEndSize:10];
setEndSizeVar:5];
        //设置每秒钟产生粒子的数目
setEmissionRate:100];
self addChild:snow z:1];

运行效果图:

ios 特效 css_粒子效果_03