如何使雪碧套件显示在正确大小的@图像从阿特拉斯?

当一个项目只有@ 2x的图像,因为它只针对视网膜显示设备,地图集精灵套件地图集得到规模错误的RGBA8888_COMPRESSED设置用于PVR纹理。 RGBA8888_PNG(默认) 有时可以正常工作。

在切换到地图集之前,我把所有@ 2张图像放在一个组中,并加载它们:

sprite = [SKSpriteNode spriteNodeWithImageNamed:@"theImage.png"]; 

没问题。 正确的大小。

现在使用地图集和RGBA8888_COMPRESSED,我得到了SKTexture,图像太大了。 完全相同的节点和configuration。 只使用阿特拉斯的SKTexture。

为什么会这样呢?

地图集图像应该有@ 2x后缀,但不包含其中包含的文件。

不会工作:

 atlas.png contains theImage@2x.png 

正确的用法:

 atlas@2x.png contains theImage.png 

我甚至不确定Sprite Kit支持PVR纹理。 也许尝试确认您的设置与PNG工作,然后导出为PVR并尝试。

当你这样做,一定要清理你的项目(Xcode:项目 – >清洁),并从设备/模拟器中删除应用程序(这一步至关重要!),否则该包仍然包含PNG图集图像,你可能会被愚弄因为Sprite Kit实际上可能会加载仍然存在于捆绑中的PNG地图集,如果您不删除它并清除您的构build,PVR就可以工作。

对于这样的情况,您可以为视网膜创build两个图集,一个创build一个图集。

例如,如果您的精灵图集文件夹被命名为MySprites.atlas,则可以将其保留为1x图像,并为视网膜位图创build一个名称为MySprites@2x.atlas的新图像。

在MySprites@2x.atlas目录中保留后缀ex @ 2x〜iPad

免责声明:我只在XCode 6中testing过。

我打开文件系统中的Images.xcassets文件夹。 里面是每个图像的一个文件夹,每个图像文件夹里面都有图像文件加上一个名为Contents.json的json文件。 它看起来像这样:

  { "images" : [ { "idiom" : "universal", "scale" : "1x", "filename" : "btn_orange.png" } ], "info" : { "version" : 1, "author" : "xcode" } } 

如果我将刻度行更改为2x,即:

 "scale" : "2x", 

图像将显示为视网膜图像(不要使用@ 2x后缀)。