当使用纹理图集(iPhone5)时,我是否必须包含正常和正常@2x尺寸的精灵图像(即使我只针对视网膜设备)。我以为我可以只添加 @2x 版本,但遗憾的是,当我运行应用程序时,精灵出来的效果比应有的要大得多(接近 4x),当我添加正常版本(@ 1x) 图像也添加到图集中。
EDIT:
在Xcode中启动一个新的项目文件,如果您希望图像填充整个设备显示屏(iPhone5/5S在最大分辨率下),您需要使用@2x扩展名(在这种情况下,Xcode 项目中没有“background_003.png”,因此只需 @2x 版本即可)
// SETUP BACKGROUND FRAME IS {320, 568} POINTS
// IMAGE "[email protected]" = 640 x 1136 Pixels
SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"background_003"];
[background setAnchorPoint:CGPointZero];
[background setPosition:CGPointZero];
[self addChild:background];
如果您在没有 @2x 的情况下添加正确大小的图像 (640 x 1136),Xcode 会获取该图像并按设备 2.0 点大小错误地对其进行缩放,从而导致图像大小是显示屏的两倍。
// SETUP BACKGROUND FRAME IS {320, 568} POINTS
// IMAGE "background_001.png" = 640 x 1136 Pixels
SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"background_001"];
[background setAnchorPoint:CGPointZero];
[background setPosition:CGPointZero];
[self addChild:background];
RESULT:
经过今天早上的一些测试后,我现在意识到我的问题是在没有 @2x 后缀的图集中添加精灵帧,然后将它们重命名以包含丢失的 @2x 的结果。看起来,当使用folder.atlas时,Xcode会在引用文件的地方创建一个plist,我找不到这个,并且它似乎只有在您第一次将图集添加到项目中时才会更新。删除并重新添加图集后,Xcode 开始以正确的比例正确显示 @2x 图像。
因此,这个故事的寓意是:如果您更改图集或其内容,请制作一个副本,将其从 Xcode 项目中删除,然后重新添加。以视网膜分辨率创建所有艺术品,并将 @2x 后缀添加到所有文件中,您只需要任何视网膜文件(如果您的目标是非视网膜设备,则不需要 @2x)最后,在代码中引用艺术资源时,不要使用@2x postfix,所以即使你的怪物精灵艺术被称为“[电子邮件受保护]“你应该在代码中将其称为“Monster_0001”,Xcode会在幕后为你计算出@2x位,如果你使用PNG(你应该是),它甚至还会为你添加“.png” 。
// THE ART ASSET ON DISK IS CALLED: "[email protected]"
SKSpriteNode *spriteMonster = [SKSpriteNode spriteNodeWithImageNamed:@"Monster_0001"];