Cocos2D SpriteSheet动画问题,我的帧数要大很多

Posted

技术标签:

【中文标题】Cocos2D SpriteSheet动画问题,我的帧数要大很多【英文标题】:Cocos2D SpriteSheet animation problem, my number of frames is much larger 【发布时间】:2011-02-13 05:52:36 【问题描述】:

我正在尝试使用 SpriteSheet 来运行动画。我的帧每个大小为 320x480,所以我可以在纹理图像上放置最多 6 个帧。但我的动画有时包含从 50 到 200 的帧数,并且所有的大小都是 320x480。 但是由于尺寸限制为 1024x1024,因此无法在纹理图像上添加这么多帧。 有没有其他方法我可以尝试。我可以一个接一个地播放动画吗?它不会妨碍表演吗? 拜托,我需要建议。 最好的, Vaibhav Tekam。

【问题讨论】:

我不清楚您要做什么。当你写“我的帧是 320x480”时,你的意思是你的精灵吗?您需要在一帧中显示 50-200 个 320x480 的不同精灵?好像很多。你知道你可以有多个精灵表,每个都有自己的精灵吗?你需要什么动画?你是想播放电影还是什么?请澄清您要做什么。也许一些代码示例也可以提供帮助。 【参考方案1】:

呃,你已经超出了设备的处理能力!您将不得不重新考虑您要实现的目标以及如何实现它。让我解释一下。

每个具有 32 位颜色的 1024x1024 纹理需要 4 MB 内存。如果你想要一个由 60 个全屏精灵组成的精灵动画,你需要 10 个这样的纹理。这使得 40 MB 的内存。或者 120 MB 用于具有 180 个动画帧的大写场景。

请记住,在理想条件下,ios 设备的 128 MB RAM 内存型号最多可为您的应用提供大约 30 MB 内存。您将开始遇到只有五个 1024x1024 纹理的内存问题。 256 MB 的设备仍然只有大约 100 MB 可供您的应用使用。

因为它应该是一个动画,所以也不能加载一个纹理,并且在每 6 个图像之后,删除该纹理并加载下一个。将 1024x1024 纹理加载到内存中大约需要 1-3 秒,具体取决于设备。在此期间,您的应用将不负责任。

【讨论】:

那么,如何使用 Cocos2D 运行电影呢?我的意思是,一个大的全屏动画。 使用 AVPlayer 播放 mpeg-4/mp4 电影 您能否提供有关此 AVPlayer 方法的更多信息?它与任何平台(android、iOS 等)兼容吗? (我发现的所有文字都与iOS音乐播放有关)

以上是关于Cocos2D SpriteSheet动画问题,我的帧数要大很多的主要内容,如果未能解决你的问题,请参考以下文章

我用texturepacker 打包的大图为啥比原文件还大

在 EaselJS 中为 spritesheet 设置动画时遇到问题

C# 中的 Spritesheet 动画

如何在 javascript 中减慢我的 spritesheet 动画?

使用 Unity EditorWindow 从 Spritesheet 创建动画?

Spritesheet 动画 easeljs-0.7.1.min.js