精灵地图集和@ 2x图像

时间:2013-12-02 13:27:56

标签: iphone sprite-kit

当使用纹理图集(iPhone5)时,我必须包括正常和正常@ 2x尺寸的精灵图像(即使我只针对视网膜设备)。我以为我只能添加@ 2x版本,但遗憾的是当我运行应用程序时,精灵比他们应该的要大得多(接近4倍),我只能在添加正常时显示正确大小的精灵(@ 1x)图像也出现在地图册上。

修改

在Xcode中开始一个新的项目文件,如果你想要一个图像填满整个设备显示器(iPhone5 / 5S的最大分辨率),你需要使用@ 2x扩展名(在这种情况下没有“ background_003.png“在Xcode项目中,所以只需要@ 2x版本就可以了”

    // SETUP BACKGROUND FRAME IS {320, 568} POINTS
    // IMAGE "background_003@2x.png" = 640 x 1136 Pixels
    SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"background_003"];
    [background setAnchorPoint:CGPointZero];
    [background setPosition:CGPointZero];
    [self addChild:background];

enter image description here

如果添加正确尺寸的图像(640 x 1136)而不使用@ 2x 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];

enter image description here

结果:

经过今天早上的一些测试后,我现在意识到我的问题是在没有@ 2x后缀的地图集中添加精灵帧的结果,然后重命名它们以包含丢失的@ 2x。看起来当使用folder.atlas时,Xcode会在某个地方创建一个引用文件的plist,我找不到这个,当你第一次将你的地图集添加到你的项目中时,它似乎只会更新。删除并重新添加图集后,Xcode开始正确显示正确比例的@ 2x图像。

因此,这个故事的寓意是:如果您更改地图集或其内容,制作副本,将其从Xcode项目中删除并重新添加。以视网膜分辨率创建所有作品并将@ 2x后缀添加到您的所有文件中,您只需要没有视网膜文件(如果您的目标是无视网膜设备,则不需要@ 2x)最后,当在代码中引用艺术资产时,请不要使用@ 2x后缀,所以即使你的怪物精灵艺术被称为“Monster_0001@2x.png”,你应该在代码中将其称为“Monster_0001”Xcode将在幕后为你制作出@ 2x位,如果你使用的话PNG(您应该是)它甚至会为您添加“.png”。

// THE ART ASSET ON DISK IS CALLED: "Monster_0001@2x.png"
SKSpriteNode *spriteMonster = [SKSpriteNode spriteNodeWithImageNamed:@"Monster_0001"];

1 个答案:

答案 0 :(得分:1)

如果你只支持Retina设备,只需添加没有@ 2x的文件,你就可以了。