iOS 系统的CoreGraphic框架可以简单的实现粒子系统的效果:雪花飘

iOS 系统的CoreGraphic框架可以简单的实现粒子系统的效果:

实现粒子系统主要用到两个类CAEmitterLayer和CAEmitterCell

下面是例子,雪花飘落的效果

//添加背景图

   UIImage*bgImage = [UIImageimageNamed:@"背景.jpg"];

   self.view.backgroundColor= [UIColor   colorWithPatternImage:bgImage];

   //粒子图层

   CAEmitterLayer*snowLayer = [CAEmitterLayerlayer];

    snowLayer.backgroundColor= [UIColorredColor].CGColor;

   //发射位置

    snowLayer.emitterPosition=CGPointMake(0,0);

   //发射源的尺寸

    snowLayer.emitterSize=CGSizeMake(640,1);

   //发射源的形状

    snowLayer.emitterMode=kCAEmitterLayerSurface;

   //发射模式

    snowLayer.emitterShape=kCAEmitterLayerLine;

   //存放粒子种类的数组

   NSMutableArray*snow_array =@[].mutableCopy;

   for(NSIntegeri=1; i<4; i++) {

       //snow

       CAEmitterCell*snowCell = [CAEmitterCellemitterCell];

        snowCell.name=@"snow";

       //产生频率

        snowCell.birthRate=15.0f;

       //生命周期

        snowCell.lifetime=30.0f;

       //运动速度

        snowCell.velocity=1.0f;

       //运动速度的浮动值

        snowCell.velocityRange=10;

       //y方向的加速度

        snowCell.yAcceleration=2;

       //抛洒角度的浮动值

        snowCell.emissionRange=0.5*M_PI;

       //自旋转角度范围

        snowCell.spinRange=0.25*M_PI;

       //粒子透明度在生命周期内的改变速度

        snowCell.alphaSpeed=2.0f;

       //cell的内容,一般是图片

       NSString*snow_str = [NSStringstringWithFormat:@"snow%ld",i];

        snowCell.contents= (id)[UIImageimageNamed:[NSStringstringWithFormat:@"%@.png",snow_str

                                                     ]].CGImage;

        [snow_arrayaddObject:snowCell];

    }

   //添加到当前的layer上

    snowLayer.shadowColor= [[UIColorredColor]CGColor];

    snowLayer.cornerRadius=1.0f;

    snowLayer.shadowOffset=CGSizeMake(1,1);

    snowLayer.emitterCells= [NSArrayarrayWithArray:snow_array];

    [self.view.layerinsertSublayer:snowLayeratIndex:0];

你可能感兴趣的:(iOS 系统的CoreGraphic框架可以简单的实现粒子系统的效果:雪花飘)