【发布时间】:2014-02-07 14:04:04
【问题描述】:
由于 Sprite Kit / iOS7 仅支持 iPhone 4 和更新版本,我不需要 iPhone 上的非视网膜纹理。因此,如果我有一个通用应用程序并希望保持整体包的大小较小,我可以为视网膜 iPhone 和非视网膜 iPad 使用相同的纹理。 (比如question)
为此,我不使用“@2x”、“~ipad”等标准命名约定。而是根据设备类型加载所有纹理。这是个好主意吗?
简化示例:
SKTexture *myTexture;
if (isIPad && retinaDisplay){
myTexture = [SKTexture textureWithImageNamed:@"myTexture_iPad_HD"];
} else {
// non-retina iPad and retina iPhone
myTexture = [SKTexture textureWithImageNamed:@"myTexture_iPad_SD"];
}
SKSpriteNode *mySprite = [SKSpriteNode spriteNodeWithTexture:myTexture size:CGSizeMake(...,...)]
(SKSpriteNode 的 CGSize 取决于设备。iPad 上的“可播放区域”是 960x640。iPhone 上是 480x320。所以在 iPhone 上 CGSize 是一半,当然。)
提前感谢您的帮助!
【问题讨论】:
-
更重要的问题是:它有效吗?如果是这样,这里没有需要回答的问题。
-
它似乎奏效了,但我不确定这个解决方案是否会在以后引起问题。所以我认为有人以不同(更好)的方式解决了这个问题。但现在我找到了一个仅使用标准命名约定即可工作的解决方案。
标签: ios objective-c sprite-kit