ios - 如何在cocos2d中在后台加载动画?

标签 ios cocos2d-iphone

我目前正在为iPad开发一款cocos2d游戏,因为那里有很多动画。我以前曾使用zwoptex创建spritesheet并在项目中添加动画。

在我的游戏中有10个关卡,完成每个关卡后,将播放一个动画,每个关卡的动画都不同,并且动画图像大小与设备屏幕大小相同。所以我不是创建spritesheet文件,而是直接加载图像。我的问题是,动画制作需要太多时间来播放动画。

我该如何解决?请任何人指导我。是否可以在plist中加载全屏大小的图像(1024x768),因为每级总共10个级别有20个动画帧,因此10X20 = 200个图像需要加载spritesheet。

我正在将此代码用于动画

 CCAnimation *animation = [CCAnimation animation];
for(int i=1;i<=20;i++)
 {
  [animation addFrameWithFile:[NSString stringWithFormat:@"Level%dAni%d.png",level,i];
 }
 animation.delayPerUnit = 0.3f;
 animation.restoreOriginalFrame = YES;
 id action = [CCAnimate actionWithAnimation:animation];

我的问题是可以用spritesheet加载全屏动画吗?动画加载时间不同,如何修复需要太多时间?

请帮我..

最佳答案

算一下,算出1024x768像素200张照片所需的内存量。任何iSomething设备的内存过多。

如果您遇到性能问题(例如,是否要在设备上运行此问题?),则可以采取两种措施来提高图像加载速度:

  • 将图像转换为.pvr.gz(为此我建议使用TexturePacker)。它们的加载速度明显快于.png。
  • 使用RGBA4444像素格式(再次可以使用TexturePacker做到这一点),并在加载图像之前在cocos中设置纹理格式。图像会更小,占用的内存更少。

  • 在您的代码中,进行动画处理的位置
        [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA4444];
        // load your images and do your anim
        ...
        // at the completion of the anim
        [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
    

    关于ios - 如何在cocos2d中在后台加载动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18179913/

    相关文章:

    ios - iPhone NSXMLParser 解析字符串并存储在 NSNumber 变量和不同的数据类型中

    IOS Swift - 连接到 AWS

    iPhone内存管理: No Need to Clean Up and Release Retained Objects on App Quit?

    objective-c - 将文本文件中的坐标加载到 NSMutableArray 中

    ios - UIKit 应用程序中的 Cocos 2D?

    ios - UIPopoverController 不会初始化 ContentViewController

    ios - 在 RxSwift 中手动发出事件

    iOS:使用 UIDocumentInteractionController 打开文件并知道是什么应用程序打开了文件

    iphone - cocos2d : Show entire layer then zoom in on character

    objective-c - 如何在基于 Objective-C 的基于图 block 的 RPG 中编写 RPG 游戏的脚本事件/场景系统?