在Cocos2d中读取CCB文件

时间:2014-01-16 10:55:08

标签: ios objective-c cocos2d-iphone

这里只是一个简单的问题,我遇到了麻烦。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

您可以做的是从缓存或整个缓存中清除特定纹理。但是,这不一定会从内存中删除纹理。只要纹理仍然在使用,例如精灵,该纹理将保留在内存中。但是如果纹理本身不在纹理缓存中,那么使用该纹理的最后一个sprite会释放内存。

但是,只要使用相同的纹理创建另一个精灵,图像首先需要再次作为纹理加载,这是一个缓慢的过程。它还将再次缓存纹理,因为这是缓存的用途:防止必须再次经历缓慢加载过程。

如果您因为内存压力相关问题而提出要求,除了减少纹理使用的内存量之外,您无能为力。通过使用更少的纹理或降低其质量(即减少颜色深度)或使用PVR格式来使用内存中的压缩纹理。