gpt4 book ai didi

ios - Sprite Kit 通用应用程序 : Same textures for iPhone and non-retina iPad?

转载 作者:行者123 更新时间:2023-11-29 10:48:09 26 4
gpt4 key购买 nike

由于 Sprite Kit/iOS7 仅支持 iPhone 4 和更新版本,我不需要 iPhone 上的非视网膜纹理。因此,如果我有一个通用应用程序并希望保持较小的整体包大小,我可以为 Retina iPhone 和非 Retina 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 当然是一半。)

预先感谢您的帮助!

最佳答案

原来我可以用标准的命名约定来解决这个问题。只要我用……

myTexture = [SKTexture textureWithImageNamed:@"myTexture"];
[SKSpriteNode spriteNodeWithTexture:myTexture size:CGSizeMake(...,...)];

... 并像这样命名我的纹理:“myTexture.png”和“myTexture@2x~ipad.png”。

在 iPad 上一切正常。在 iPhone 上,我不想加载 @2x 纹理,因此设备修饰符“~ipad”。现在 iPhone 上没有 @2x 纹理,因此加载了“myTexture.png”。由于我定义了 size: 我的 SKSpriteNode 的参数并且 CGSize 是 iPad 上的一半大小,纹理按比例缩小,现在是“视网膜”。

关于ios - Sprite Kit 通用应用程序 : Same textures for iPhone and non-retina iPad?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21629766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com