Cocos2D 弃用的动画方法

Posted

技术标签:

【中文标题】Cocos2D 弃用的动画方法【英文标题】:Cocos2D deprecated animation methods 【发布时间】:2013-08-04 18:15:24 【问题描述】:

我认为升级到 XCODE5 和 Cocos2D 2.x 是合适的,但我的代码不同意。我设法找到了大多数其他代码的修复程序,但我似乎无法解决这个问题。

    - (CCAnimation *)createCatAnimation:(NSString *)animType

    CCAnimation *animation = [CCAnimation animation];
    for(int i = 1; i <= 2; ++i) 
        [animation addFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] //addFrame: is deprecated 
spriteFrameByName:
                             [NSString stringWithFormat:@"cat_%@_%d.png", animType, i]]];
    
    animation.delay = 0.2; //.delay is deprecated
    return animation;

我怎样才能改变它以对已弃用的东西感到满意?

【问题讨论】:

查看 CCdeprecated.h 和 .m(.m 实现了当时的适当风格),因此您可以调整您的代码。 @YvesLeBorg 我找到了文件! :D 我不知道怎么处理它! :D 我是个大菜鸟,所以万无一失的指令会受到拥抱和蛋糕的欢迎 作为一个“菜鸟”不升级到测试版软件,你会剥夺自己的许多帮助资源,同时招致新的和未知的问题 【参考方案1】:

好吧,我怀疑您收到有关某些方法已弃用的“警告”,因此您的代码可以正常工作。给你一些时间来获得一些不受欢迎的东西并弄清楚。但是,只要进入一个“不推荐”的方法,你就会看到编码它的“正确”方法。例如(来自CCDepredated.m),方法

-(void) addFrameWithTexture:(CCTexture2D*)texture rect:(CGRect)rect

    [self addSpriteFrameWithTexture:texture rect:rect];

顶行是不推荐使用的语法。您会收到使用它的警告。但是,在运行时,会调用顶行并在那时调用 RIGHT 方法(包含在方法实现中)。所以你得到了警告,但仍然有效。因此,要消除警告,只需找到已弃用签名的所有实例(顶行),并用新语法替换(大括号之间)。

如果您像我一样讨厌在编译时出现未解决的警告,您最终会找到所有已弃用的调用实例并修复它们。

【讨论】:

Animation.delay 出错,而不仅仅是警告。同样的程序?谢谢:) 除非你想在任意两帧之间有一个特定的延迟,否则最好使用 animation.duration 属性来计算整个序列的总持续时间。 老实说,我很久以前从一些教程中获取了这段代码,我什至不知道它到底做了什么。但是动画不是固定时间,它会变化,所以我猜 .delay 会很有用。有什么建议吗? Whatevs,搞砸那条线。我会想出一个解决方法。感谢您提供有关已弃用内容的知识。

以上是关于Cocos2D 弃用的动画方法的主要内容,如果未能解决你的问题,请参考以下文章

cocos2d学习-动画缓存和动画创建

Sprite 帧动画 Cocos2d 3.0

COCOS2D:CCScene 中的 ScrollView 块动画

Cocos2D 动画问题

动画不能正常工作(Cocos2d)

UITableViewController 滚动引起的cocos2d动画暂停问题的解决