0

这是我的问题。空 cocos2d 项目的重量为 3.38 MB(标准“Hello world”)。我通过 Profile->Allocate Kit 检查它。现在我有一个大小为 382x512 像素的 .png 图像。它将在 RAM 中扩展到 512x512(2 度)。我将此文件添加到项目中,如下所示:

CCSprite* sprite = [CCSprite spriteWithFile:@"mySprite.png"];

现在是最有趣的。“mySprite.png”具有 8888 像素格式,即它必须占用 512x512 = 0.5*0.5 = 0.25 MB * 4 = 1 MB(像素格式的 4 - 4 个字节)。我对吗?我想是这样,但是当我检查项目的重量时,我发现该项目有 5,54 MB,即“mySprite”在 RAM 中已经 oppupied > 2 MB。

我究竟做错了什么?我该如何解决?:/ 谢谢。

4

1 回答 1

0

我记得在某处读到过这个。我浏览了cocos2d论坛,发现了这个帖子: http: //www.cocos2d-iphone.org/forum/topic/4510

您应该查看 Karl 的解释,这对我来说似乎很有意义:

它占用了 8MB,因为加载程序例程使用操作系统加载 UIImage,然后以 GL 友好的 32 位格式将像素复制到新分配的缓冲区。这意味着您的 1024x1024 图像将需要 8MB 来加载,但是一旦 UIImage 被释放,其中的 4MB 应该被释放......

于 2012-01-23T11:16:05.567 回答