ios - 在 Cocos2d 中读取 CCB 文件

标签 ios objective-c cocos2d-iphone

这里只是一个我遇到问题的快速问题。

有谁知道使用 CCBReader 读取 CCB 文件而不将 CCB 文件中的图像添加到纹理缓存中的方法?

感谢您的帮助。

最佳答案

这是不可能的,它甚至不是 CCBReader 特有的东西。通过任何方式加载到 cocos2d 中的任何图像,无论是从图像创建纹理、 Sprite 帧或文件中的 Sprite ,还是位图字体,都会添加到纹理缓存中。与任何使用图像或 Sprite 帧的方式一样,首先检查缓存是否已加载该特定图像或纹理图集。

您可以做的是从缓存中清除特定纹理,或者完全清除整个缓存。但是,这不一定会从内存中删除纹理。只要纹理仍在使用,比如被 Sprite 使用,该纹理就会保留在内存中。但如果纹理本身不在纹理缓存中,则当使用该纹理的最后一个 Sprite 释放时,它的内存将被释放。

但是,一旦您使用相同的纹理创建另一个 Sprite ,图像首先需要再次作为纹理加载,这是一个缓慢的过程。它还会再次缓存纹理,因为这就是缓存的用途:避免再次经历缓慢的加载过程。

如果您是因为内存压力相关问题而询问,除了减少纹理使用的内存量外,您无能为力。通过使用更少的纹理,或降低它们的质量(即降低颜色深度)或使用 PVR 格式,以便能够使用内存中压缩的纹理。

关于ios - 在 Cocos2d 中读取 CCB 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159755/

相关文章:

ios - 如何在 UIImageView 中的 UIImage 上绘制三角形

ios - 效果水平滚动为 Yahoo Weather iOS App

ios - 导入数据后CoreData内存未释放

objective-c - Objective-C库中用于回调的选择器或 block

ios - 如何判断一个类或者一个对象是不是单例?

ios - 连续计算实际日期和 future 日期之间的时间

ios - 对CCSpriteBatchNode的addchild方法感到好奇

ios - 为什么 iPhone5 的表面尺寸不对?

ios - 细节 UIView 的问题

ios - (Cocos2D) Sprite 没有完美地位于其他 sprite 之上?