gpt4 book ai didi

iphone - 在 cocos2d 中将动画添加到图层的路径

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:32 25 4
gpt4 key购买 nike

所以我在 cocos2d 上,但在我使用普通的 ios 应用程序之前,我有这段代码:

-(void)viewDidLoad
{
rootLayer = [[CALayer alloc] init];
[imageView.layer addSublayer:rootLayer];
roundPath = CGPathCreateMutable();

CGPathMoveToPoint(roundPath, nil, center.x , center.y - 35);
CGPathAddArcToPoint(roundPath, nil, center.x + 35, center.y - 35, center.x + 35, center.y + 35, 35);
CGPathAddArcToPoint(roundPath, nil, center.x + 35, center.y + 35, center.x - 35, center.y + 35, 35);
CGPathAddArcToPoint(roundPath, nil, center.x - 35, center.y + 35, center.x - 35, center.y, 35);
CGPathAddArcToPoint(roundPath, nil, center.x - 35, center.y - 35, center.x, center.y - 35, 35);

CGPathCloseSubpath(roundPath);

//Box Path

boxPath = CGPathCreateMutable();

CGPathMoveToPoint(boxPath, nil, center.x , center.y - 35);
CGPathAddArcToPoint(boxPath, nil, center.x + 35, center.y - 35, center.x + 35, center.y + 35, 4.7);
CGPathAddArcToPoint(boxPath, nil, center.x + 35, center.y + 35, center.x - 35, center.y + 35, 4.7);
CGPathAddArcToPoint(boxPath, nil, center.x - 35, center.y + 35, center.x - 35, center.y, 4.7);
CGPathAddArcToPoint(boxPath, nil, center.x - 35, center.y - 35, center.x, center.y - 35, 4.7);

CGPathCloseSubpath(boxPath);
shapeLayer = [CAShapeLayer layer];

shapeLayer.path = boxPath;

[rootLayer addSublayer:shapeLayer];
}

-(void)startAnimation
{
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"];

animation.duration = 2.0;

animation.repeatCount = HUGE_VALF;

animation.autoreverses = YES;

animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

animation.fromValue = (id)boxPath;

animation.toValue = (id)roundPath;

[shapeLayer addAnimation:animation forKey:@"animatePath"];
}

但是我没有找到在cocos2d上做从boxpathroundpath的动画的方法,我不知道CCAction用的是什么。有谁能够帮助我 ?对不起我的英语我是法国人:/

最佳答案

据我所知,Cocos2d 中没有直接接口(interface)可以使用 Apple 的 CoreAnimation 库中的 CGPaths。


EDIT1:抱歉,我误解了你的问题! Cocos2d 不提供任何工具来从一个路径定义的形状动画/变形到另一个由不同路径定义的形状。您需要创建自己的继承自 CCNode 的自定义类,或者使用 Cocos2d 以外的一些库。如果您确实创建了自己的 CCNode 子类,那么现有的 Cocos2d Action /动画工具可能会有用...


EDIT2:如果您了解如何子类化,那么这里有一个链接,其中包含您希望在 CCNode 的子类中覆盖哪些方法的基础知识:http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:draw_update

此外,cocos2d 编程指南通常可能会有帮助:http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:index

如果您不了解如何子类化(例如,从现有的 class 继承一个新的 class),那么我建议您了解 Object 的这一部分面向编程使用更简单的问题!


<罢工>我相信您最好的选择是查看 CCSequence(这是一种 CCAction)并用一系列 CCMoveToCCMoveBy 操作。

<罢工>

教程链接: http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:actions_composition

关于iphone - 在 cocos2d 中将动画添加到图层的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10093470/

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