0

据我所知,从 Cocos2D 2.0 开始,1025*1025 纹理使用的内存并不比 1024*1024 纹理多 4 倍,只是按比例增加。

如果我把我的纹理放到图集中,几乎总是有一些未使用的空间。这是浪费的。(更不用说 iOS5 POT 纹理内存错误,它使 POT 纹理图集浪费了 33% 以上的内存。)但如果我只是按原样使用我的纹理,那么就不会浪费内存。在我看来,Texture Atlases 的唯一优势是能够使用 SpriteBatchNode。但我的应用程序内存严重受限,我只支持支持 NPOT 纹理的设备。我知道 NPOT 纹理处理有点慢,但节省内存对我来说是最重要的。

我可能错了,请确认我,或者告诉我为什么我错了。谢谢!:)

4

1 回答 1

2

您应该针对最坏的情况进行设计。假设错误始终存在,并相应地设计您的应用程序的内存使用情况。不知道该错误是否会消失、重新出现,或者是更新的 iOS 版本引入的更严重的错误。

骑在内存完全使用的边缘并不是一个好主意,您总是必须留下一个阈值以允许偶尔出现奇怪的情况。新的 iOS 版本可能会引入另一个错误,占用更多内存,用户可能在后台运行的应用程序会占用更多内存,随着时间的推移可能会出现微小的内存泄漏等。

此外,CCSpriteBatchNode 可以用于任何纹理,而不仅仅是纹理图集。

于 2012-10-18T19:36:58.973 回答