Sprite Kit art assets naming convention

2019-09-01 07:25发布

问题:

Making my 1st Sprite Kit game & almost finished it. Just getting my images finalized. Problem is, with the addition of iPhone 6 & 6 Plus, I am having issues figuring out how to name my game assets. For instance, one of my several background images is called "1MBack.png". Sometimes people write "Default–568h@2x.png" and I try to figure out if I need the "Default–568h" part in my game asset names. The naming convention I used for my art is as following:

<< 1x (iPhone 2G, 3G, 3GS) = 1MBack.png >> << 2x (iPhone 4, 4s) = 1MBack@2x.png (640x1136) >> << Retina 4 2x (iPhone 5, 5s) = 1MBack@2x.png (750x1334) >> << 3x (iPhone 6 Plus) = 1MBack@3x.png >>

Did I name my image's correctly? What about iPhone 6 - do I name an image for it 1MBack@2x.png or 1MBack-667h@2x.png? It's important to me to get these names right because I sat for quite a while making each asset for each screen and want them utilized accordingly.

One final question: when making the assets in photoshop, as I was sizing them, I choose PPI according to the PPI of the screen the asset would be used on. So the 1x (iPhone 2G, 3G, 3GS) 1MBack.png has a PPI of 163. The 2x (iPhone 4, 4s) 1MBack@2x.png has a PPI of 326. Is this correct? I'm worried about this also, because I read someone writing to make assets in PPI 72. Please clarify this.

回答1:

Set different name for Widescreen images(new iPhones) like name-retina

-(void)didMoveToView:(SKView *)view
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        CGSize result = [[UIScreen mainScreen] bounds].size;
        if (result.height == 480) {//Old iPhone detected
        SKSpriteNode *bg = [SKSpriteNode spriteNodeWithImageNamed:@"1MBack"];//2G, 3G, 3GS
        //By the way you have to set different sprite position for devices here   
        }else{//New iPhone detected
        SKSpriteNode *bg = [SKSpriteNode spriteNodeWithImageNamed:@"1MBack-retina"];//5, 5S, 6, 6Plus
        }
    }
}