ios - 具有3D旋转的CAEmitterCell

标签 ios objective-c core-animation caemitterlayer caemittercell

我正在尝试使用CAEmitterLayer和CAEmitterCell再现从最佳效果掉落的小纸片。

到目前为止,我已经获得了2D动画,但是我很难使每个单元格在掉落时旋转。

如何对每个粒子随机旋转?到目前为止,我尝试使用3D变换均未成功。

这就是我得到的:

-(void) configureEmitterLayer {
    self.emitterLayer = [CAEmitterLayer layer];
    self.emitterLayer.emitterPosition =  CGPointMake(self.backgroundContainer.bounds.size.width /2, 0);
    self.emitterLayer.emitterZPosition = 10;
    self.emitterLayer.emitterSize = self.backgroundContainer.bounds.size;
    self.emitterLayer.emitterShape = kCAEmitterLayerLine;

    CAEmitterCell *emitterCell = [CAEmitterCell emitterCell];

    emitterCell.contents = (__bridge id)([UIImage imageWithColor:[UIColor whiteColor]].CGImage);

    emitterCell.lifetime = CGFLOAT_MAX;
    emitterCell.lifetimeRange = 4.0;
    emitterCell.birthRate = 2.5;

    emitterCell.color = [[UIColor colorWithRed:1.0f green:1.0 blue:1.0 alpha:1.0] CGColor];
    emitterCell.redRange = 1.0;
    emitterCell.blueRange = 1.0;
    emitterCell.greenRange = 1.0;
    emitterCell.alphaRange = 0.3;

    emitterCell.velocity = 10;
    emitterCell.velocityRange = 3;
    emitterCell.emissionRange = (CGFloat) M_PI_2;
    emitterCell.emissionLongitude = (CGFloat) M_PI;
    emitterCell.yAcceleration = 1;
    emitterCell.zAcceleration = 4;

    emitterCell.spinRange = 2.0;
    emitterCell.scale = 7.0;
    emitterCell.scaleRange = 4.0;

    self.emitterLayer.emitterCells = [NSArray arrayWithObject:emitterCell];

    [self.backgroundContainer.layer addSublayer:self.emitterLayer];
}

最佳答案

该库不使用发射器框架,但是值得寻找灵感。 UIDynamics附加到单个对象以实现所需的效果。

iOS confetti example

关于ios - 具有3D旋转的CAEmitterCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29272216/

相关文章:

android - 跨平台移动框架背后的逻辑

ios - FBSDKAppInviteDialog 不工作

ios - 核心动画在今天的扩展中是不可能的吗

ios - 简单的应用程序崩溃

ios - 从 loginviewcontroller 获取用户邮箱并显示在 revealview 的标签中

objective-c - 如何在 Cocoa 中解析 XML?

ios - CAMediaTiming中的kCAFillModeRemoved和CAAnimation的removedOnCompletion属性之间的区别

ios - 如何刷新屏幕上的所有内容

ios - UITapGestureRecognizer 静态方法崩溃

ios - 我的导航栏有什么问题?