如何使Sprite Kit以正确的大小显示来自atlas的@ 2x图像?

ope*_*rog 13 iphone ios sprite-kit sktextureatlas

当一个项目只有@ 2x图像,因为它只针对视网膜显示设备时,atlas Sprite Kit图谱会将RGBA8888_COMPRESSED设置的比例设置错误,以便与PVR纹理一起使用.RGBA8888_PNG(默认)有时可以正常工作.

在切换到地图集之前,我在一个组中包含了所有的@ 2x图像并加载了它们:

sprite = [SKSpriteNode spriteNodeWithImageNamed:@"theImage.png"];
Run Code Online (Sandbox Code Playgroud)

没问题.正确的尺寸.

现在使用atlas和RGBA8888_COMPRESSED,我得到了SKTexture,图像太大了.完全相同的节点和配置.仅使用来自atlas的SKTexture.

为什么会这样?

Lea*_*s2D 12

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

不会工作:

atlas.png contains theImage@2x.png
Run Code Online (Sandbox Code Playgroud)

正确用法:

atlas@2x.png contains theImage.png
Run Code Online (Sandbox Code Playgroud)

我甚至不确定Sprite Kit是否支持PVR纹理.也许尝试确认您的设置适用于PNG,然后导出为PVR并尝试.

当你这样做时,一定要清理你的项目(Xcode:Project - > Clean)并从设备/模拟器中删除应用程序(此步骤至关重要!)否则捆绑包仍将包含PNG地图集图像,您可能会被愚弄认为PVR有效,因为Sprite Kit实际上可能会加载仍然存在于捆绑包中的PNG图集,如果你不删除它并清理你的版本.