Cocos2d iphone Cocos2d一次加载多个图像?

Cocos2d iphone Cocos2d一次加载多个图像?,cocos2d-iphone,kobold2d,Cocos2d Iphone,Kobold2d,我一直在搜索cocos2d论坛,但我不了解人们使用的一些概念。在我的游戏中,我必须加载100多个图像作为主菜单的动画,但我遇到的问题是,这些图像加载大约需要3到5秒,然后我的游戏启动。加载图像后动画运行良好,但问题在于加载。我会使用雪碧表,但图像太大,所以我必须单独加载它们。那么,我应该先制作一个加载屏幕来加载所有这些图像吗?如果是的话,最好的实现方法是什么?这是我第一次尝试这样做。是的,一定要使用纹理图集(sprite sheet不是正确的术语,但意思是相同的)。这是一个很好的工具 纹理图集将

我一直在搜索cocos2d论坛,但我不了解人们使用的一些概念。在我的游戏中,我必须加载100多个图像作为主菜单的动画,但我遇到的问题是,这些图像加载大约需要3到5秒,然后我的游戏启动。加载图像后动画运行良好,但问题在于加载。我会使用雪碧表,但图像太大,所以我必须单独加载它们。那么,我应该先制作一个加载屏幕来加载所有这些图像吗?如果是的话,最好的实现方法是什么?这是我第一次尝试这样做。

是的,一定要使用纹理图集(sprite sheet不是正确的术语,但意思是相同的)。这是一个很好的工具

纹理图集将在加载时节省时间,并节省内存。您还可以尝试不同的图像颜色深度和压缩选项,以进一步提高内存使用率和加载时间,但许多选项会在不同程度上影响图像质量,具体取决于您的图像


顺便问一下,这些图片有多大?假设每个都是512x512,并且您加载了100个,它们将消耗100 MB的内存。我提到这一点是因为这一点经常被忽略,而磁盘上的文件大小只是图像作为纹理消耗的一小部分。

@Stephen:有两种方法可以做到这一点。使用TexturePacker,您可以创建一个.tps文件,每个源图像一个,然后在文件->导出图像下。将图像的几何体设置为1024x1024。指定.pvr格式,启用预乘alpha,并玩弄抖动(这实际上可能有益于某些纹理,即改进.png)。对于菜单,您也可能受益于RGBA4444(所需内存增加,渲染质量无明显损失)

您还可以使用内置的texturetool,如下所示:

在执行此操作之前,您必须将toto.png转换为您的案例中的POT文件(1024x1024),例如使用photoshop

MrEvil:pvrCenter$/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/texturetool-m-f PVR-e PVRTC toto.png-o toto.PVR

MrEvil:pvrCenter$gzip toto.pvr

这在gzip(从691Kb png到295Kb)之后提供了极好的压缩

我使用了texturetool,因为我可以在shell中编写脚本,并且只需一个命令就可以处理大量的图像(播放D3,同时盒子会大量生成图像:)

编辑1:有关打包和文件大小的一些信息

好的,我从我自己的960x640 8位PNG开始,691KB

加载它TexturePacker,将格式设置为RBGA8881024x1024x1024,我得到766KB(这给出了我的POT文件)

以.pvr.ccz格式导出到RGBA8888,996KB。 导出到RGBA8888作为.pvr.gz,1.001 Mb 以.pvr.ccz格式导出到RGBA4444,193Kb


如果我在766KB的文件上使用texturetool,那么gzip文件为305Kb(RGBA8888)。我真的无法解释305Kb和996KB之间的区别。这可能与TexturePacker的抖动处理有关,但不确定

纹理图集和精灵表不是一回事吗。我的图像用于完整背景图像,视网膜显示为960x480,但我已将这些图像转换为8位PNG,它们的平均大小约为300KBs。如果您担心加载时间,我建议您将这些图像转换为一些.pvr.gz格式(好的旧TexturePacker)。内存消耗也有相同的差异,但我已经测量到(在设备上)加载时间的显著改善,以及我的脂肪应用程序的大量节食。试着用一些,只是为了衡量你是否会有改进的加载时间。同样,也可以将结果告诉你的艺术爱好者,因为pvr会导致一些伪影(同样,TexturePacker在最小化这些伪影方面做了出色的工作)。我所知道的通过texture packer转换图像的唯一方法是将图像放入精灵表中,对吗?或者有什么方法可以单独保存它们texturePacker@Stephen:WRT 8位PNG-这些将扩展为硬件支持的格式,可能是32bpp、8888。@YvesLeBorg:我不知道Cocos具体允许什么,但一般来说,PVR只是各种颜色格式的包装(例如8888、565或PVRTC 4bpp)PowerVR硬件支持的。大概你可以按照自己的意愿来权衡质量和内存预算。我尝试将每个图像保存为.pvr,并使用你解释的所有设置进行播放,但是图像的大小比原来的要大。我使用了我的原始图像,即960x640@336KB。然后我把它保存为.pvr,结果是2.1MB?是的。我认为它更大是因为将其设置为1024x1024会有额外的空间。告诉我关于“8位png”。。。每个通道32位,即RGBA8888,还是每个像素2位?此外,由于某些原因,我使用texturetool进行的压缩比TexturePacker好得多。我会调查的。