我正在播放大约90张图片的动画@ 480x320每个,我想知道图像不是2的强度,这会是一个很大的性能影响吗?我正在为iPhone 3Gs进行编程。我也在使用cocs2d。
答案 0 :(得分:1)
假设您在开始时加载所有这些图像,它们是16位图像。
那么你将拥有512x512x90 = 23,592,960像素 16位图像为377,487,360位。 377,487,360位= 45兆字节的RAM。
所以是的,这是一个很大的表现。
答案 1 :(得分:0)
让我们看看......
480x320图像将创建512x512的纹理(下一个最接近的2的幂)。 512x512倍32位色深(4字节)等于1兆字节。 90倍1兆字节等于90兆字节。
你最大的问题是分配这么多内存并缓存它。如果不缓存动画图像,则每次动画帧更改时都必须加载每个图像。从闪存加载1兆字节非常慢,我猜> 100毫秒。因此,每当一个框架发生变化时,您的应用程序将停止几分之一秒。如果您使用Retina图像(每个960x640图像需要4兆字节纹理内存),这将是3GS上的问题,也可能是Retina设备。
您只能通过使用PVR压缩图像(使用TexturePacker)来改善这一点。即使将纹理大小减半到16位也可能不足以实现平滑动画。