gpt4 book ai didi

ios - CAEmitterLayer动画沿路径留下准确的轨迹

转载 作者:行者123 更新时间:2023-12-01 16:45:35 25 4
gpt4 key购买 nike

我需要用CAKeyframeAnimation动画的UIView留下痕迹

Ball * ball = [[Ball alloc]init];
// customized the ball

CGMutablePathRef path = CGPathCreateMutable();
// filling in the path from points.

CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
anim.path = path;
anim.rotationMode = kCAAnimationRotateAuto;
anim.repeatCount = HUGE_VALF;
anim.duration = 1.2;
anim.cumulative = YES;
anim.additive = YES;

[ball.layer addAnimation:anim forKey:@"fly"];

现在,Ball.m将具有以下发射器层:
@implementation TennisBall{

__weak CAEmitterLayer *emitterLayer;

}


+ (Class)layerClass
{
return [CAEmitterLayer class];
}

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setupLayer];
emitterLayer = [CAEmitterLayer layer];
emitterLayer.frame = self.bounds;
emitterLayer.emitterPosition = CGPointMake(160, 240);
emitterLayer.emitterSize = CGSizeMake(10, 10);
emitterLayer.renderMode = kCAEmitterLayerAdditive;

CAEmitterCell *emitterCell = [CAEmitterCell emitterCell];
emitterCell.birthRate = 1;
emitterCell.lifetime = 10.0;
emitterCell.lifetimeRange = 0.5;
emitterCell.velocity = 20;
emitterCell.velocityRange = 10;
emitterCell.emissionRange = 0;
emitterCell.scaleSpeed = 0.3;
emitterCell.spin = 0;
emitterCell.color = [[UIColor colorWithRed:0.8 green:0.4 blue:0.2 alpha:0.1]
CGColor];
emitterCell.contents = (id)[[UIImage imageNamed:@"first.png"] CGImage];
[emitterCell setName:@"fire"];

emitterLayer.emitterCells = [NSArray arrayWithObject:emitterCell];

[self.layer addSublayer:emitterLayer];


}
return self;
}

我只需要球留下一条重复球行进路线的小径即可。我该如何实现?

最佳答案

为了确保发射器位置正确,它是球层,
您需要确保EmitterPosition与它的anchorPoint相同。

例如,如果anchorPoint为(0,0),则发射器位置为(0,0)。
如果anchorPoint为(0.5,0.5),大小为(0,0,300,300),则itterPosition为(150,150)

关于ios - CAEmitterLayer动画沿路径留下准确的轨迹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20226600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com