我对如何真正判断纹理图集或加载到SKSpriteNode中的图像的SpriteKit内存使用情况感到茫然。
Texturepacker支持png的RGBA4444输出格式。但是,spritekit实际上是将它们加载为每像素16位还是总是以每像素32位加载它们。当我在纹理打包器中将图像转换为RGBA4444后在MacOS上运行sips terminal命令时,它仍然说png文件每位有4个样本,每个样本有8位。因此它仍然是RGBA8888 !!。
另外,我不明白为什么我的精灵套件中的游戏已经使用了80mb的内存,即使我正在做的是加载所有iOS设备的背景png图像(覆盖整个背景)(不同设备的不同分辨率)和一个非常小的地图集。根据纹理打包器,背景图像和图谱在RAM中的大小应小于10mb。然而,当我运行游戏时,它已经消耗了80 MB。
SpriteKit非常混乱。在cocos2d中,很容易强制每个图像作为RGBA4444,RGB565等加载。在sprite工具包中,只有深入研究OpenGL ES低级别调用才能实现这一点,我对此并不十分熟悉。
我会切换到cocos2d,但为时已晚,因为我已经在spritekit上取得了很多进展。此外,PVR纹理在spritekit上看起来非常糟糕。
总之,我的问题是:如何减少spritekit内存中纹理的内存使用量!我在级别开始之前预加载所有纹理,实际上它们不是很多纹理。
PS。我正在为iOS 10开发,我有最新的Xcode 8.1
提前致谢。