我正在尝试在 iPad 上构建天气应用程序,但似乎我需要一些动画方面的帮助。假设我正在制作雷达动画,因此雷达源文件有 10 张 900x700 像素大小的 gif/jpeg 图片。我已经使用此处的教程尝试了 UIImage 动画技术:
http://www.icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/ http://www.icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/
但似乎加载 10 张这么大的图像对于 iPad 来说太大了,无法处理,并且由于内存警告而崩溃。我正在研究其他动画技术,但我似乎找不到可以有效完成此任务的方法。
我看过其他的,比如使用精灵的 Core Animation 和使用精灵的 Cocos2D。有人可以指出制作这些大图像动画的最佳方式的正确方向吗? (请记住,这些图像是动态的并且经常变化,因此必须在服务器上重新创建精灵并从 iPad 中获取来制作动画)。谢谢
OpenGL 仅创建尺寸为 2 次方的纹理。对于图像而言,尺寸为 1024x1024,即每个图像的 1 兆内存。不过,这对 iPad 来说应该不是问题。
首先,使用 Xcode 的分析工具进行调查,以确保图像不会在动画的每个循环中重复加载到内存中(可能是通过不共享缓存纹理的新对象)。这可以从一开始就解决你的问题。
其次,如果只是为了轻松处理纹理和缓存,我建议使用 Cocos2D。将图像放入 CCAnimation,将其弹出到 CCRepeatForever,然后使用 CCSequence 运行它。完成后,点击 CCTextureCache 释放未使用的纹理。
第三,将动画帧速率降低到 30 或更低(如果仅针对此动画)。它可能是 iPad,但你正在制作天气应用程序。不是电子游戏。
最后,降低图像的大小。证明您想要的一切都是合理的,但大型雷达动画不会推销您的应用程序。仅仅因为网站可能已经在完美地播放该动画,请记住台式机比任何智能手机拥有更多的内存和功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)