我们使用 cocos2d 在 iPhone/iPad 应用程序中显示由三个不同视差层组成的大图像。用户将能够平移这个大图像。
这些图像的宽度约为 13000 像素,因此我们担心内存使用情况。 理想情况下,我们希望将图像网格化并根据当前可见的内容加载其子部分。
cocos2d 是否包含任何可以帮助我们解决此问题的内容? 我们已经研究过使用平铺 map (我们有一个在 CCTMXTiledMap 上运行的原型(prototype)),但看起来这实际上并不是平铺 map 的一个很好的应用,因为它们通常用于由以下内容组成的大型 map /图像:重复较小的图像;而我们的大图像中的每个图 block 都是独一无二的。
有人对实现这一目标的最佳方法有什么好主意吗?
最佳答案
我记得在博客上看到过一篇文章,其中一位 iPhone 程序员在屏幕滚动时在后台线程上加载图像。他说只要滚动不是太快,实现平滑滚动是没有问题的。
您基本上根据屏幕滚动的方向加载图像部分,并取消分配离开屏幕边框的图像。因此,屏幕本身以及屏幕边缘周围的边框可充当缓冲区,以防玩家来回移动(向左或向右等)。
我希望能找到链接,但搜索了 30 分钟后我放弃了。我确实看过他的视频,而且滚动非常流畅。
关于iphone - 在cocos2d中仅加载大图像的可见区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9797907/