Memory management SpriteKit纹理内存(RAM)使用优化

Memory management SpriteKit纹理内存(RAM)使用优化,memory-management,sprite-kit,textures,ios10,texturepacker,Memory Management,Sprite Kit,Textures,Ios10,Texturepacker,对于如何真正判断纹理图集或加载到SKSpriteNode中的图像的SpriteKit内存使用情况,我感到不知所措 Texturepacker支持png的RGBA4444输出格式。然而,spritekit实际上是以每像素16位的方式加载还是始终以每像素32位的方式加载。当我在texture packer中将图像转换为RGBA4444后在MacOS上运行sips terminal命令时,它仍然表示png文件每位有4个采样,每采样8位。所以还是RGBA8888 此外,我不明白为什么我的sprite k

对于如何真正判断纹理图集或加载到SKSpriteNode中的图像的SpriteKit内存使用情况,我感到不知所措

Texturepacker支持png的RGBA4444输出格式。然而,spritekit实际上是以每像素16位的方式加载还是始终以每像素32位的方式加载。当我在texture packer中将图像转换为RGBA4444后在MacOS上运行sips terminal命令时,它仍然表示png文件每位有4个采样,每采样8位。所以还是RGBA8888

此外,我不明白为什么我的sprite kit游戏已经使用了80mb的内存,尽管我所做的只是加载所有iOS设备(不同设备的不同分辨率)的背景png图像(覆盖整个背景)和一个非常小的图集。根据texture packer,背景图像和图集在RAM中的大小应小于10mb。然而,当我运行游戏时,它已经消耗了80MB

这很令人困惑。在cocos2d中,很容易强制将每个图像加载为RGBA4444、RGB565…等。在sprite工具包中,这似乎只有在深入研究OpenGL ES的低级调用时才可能实现,而我对此并不十分精通

我想改用CoCo2D,但为时已晚,因为我已经在spritekit上取得了很多进步。另外,spritekit上的PVR纹理看起来非常糟糕

总之,我的问题是:如何减少spritekit内存中纹理的内存使用!我在关卡开始前预装了所有的纹理,实际上它们不是很多纹理

另外,我正在为iOS 10开发,我有最新的Xcode 8.1


提前谢谢。

您问了很多问题……但请尝试一下:另外,关于内存使用。。。请记住,磁盘上图像的大小与加载到RAM中的图像大小无关。当您说80MB时,这是在模拟器上还是在设备上?模拟器会给你一个错误的值,记住cocos2d实际上使用的是OpenGL。是的,没错。在实际的设备中,它只使用10Mb。但是,我仍然希望以RGBA4444加载纹理。既然Cocos2d可以使用,Spritekit也可以使用吗?如果您对一种新的Spritekit内存缩减方法感兴趣,请查看