gpt4 book ai didi

ios - 如何为 Sprite-Kit 组织纹理图集

转载 作者:搜寻专家 更新时间:2023-10-31 23:05:14 25 4
gpt4 key购买 nike

好吧,我已经研究了好几个小时了,我真的很困惑。我的背景类代码如下:

class Background : SKNode {

required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

override init() {
super.init()
buildBackground()
}


func buildBackground() {
var sprite : SKSpriteNode = SKSpriteNode(imageNamed: "background_full")

sprite.anchorPoint = CGPointZero
self.addChild(sprite)
}

}

我现在还有以下图集文件指向其中的png文件

background@2x~iphone.atlas --> background.png, background-567h.png, background-667h.png
background@3x~iphone.atlas --> background.png
background~ipad.atlas --> background.png
background@2x~ipad.atlas --> background.png

我得到了不可预测的、非理性的、随机的结果,在 iOS 7 中可能找不到适用于 iPhone 4s 的图像,但在 iOS 8 中却完全没问题(但是使用了适用于 iPhone 5 的图像)。 iPhone 5 将使用 iPad @1x 等的纹理。

我本来是关注 the solution for this post但我只是不明白哪里出了问题。

注意:@3x 报错,但我明白为什么,文件太大无法包含在图集中,我打算在基本工作完成后分割背景。所以你可以忽略 @3x,因为我没有将它包含在我的项目中,我只是想给你完整的图片。

编辑 - 注意我正在 iOS 7.03、7.1 和 8.0 上测试

我已将我的调查减少到

background.atlas --> background.png (iPad 2)
background@2x.atlas --> background.png (iPhone 4s)

iPad 2 显示正确的结果,但它的纹理被用于 iPhone 4s。

如果,我有这样的设置:

background@2x~iphone.atlas --> background.png (iPhone 4s)
background~ipad.atlas --> background.png (iPad 2)

iPhone 4s 显示正确的结果,但是,它的纹理被用于 iPad 2 和两个设备,我在 iOS 8.0 上收到错误,显示模拟器设备中的应用程序路径说“SKTexture 无法加载图像资源” .../background@2x~iphone.atlasc/background@2x~iphone.1.png"'

对于上面这两个,好像图集里面的贴图先来的就是默认使用的贴图

如果,我有这样的设置:

background.atlas --> background~ipad.png (iPad 2)
background@2x.atlas --> background@2x~iphone.png (iPhone 4s)

然后一切正常,除了在 iOS 7.03 中我收到一条错误消息“SKTexture 无法加载图像资源“background.png””,就是这样,没有像前面示例中那样的长路径

另一个编辑

bottom of this page 的最后一个要点向我揭示,如果我将来自所有设备的所有背景 PNG 文件集中到一个图集中,SpriteKit 将分离到适当的设备中,因此正确的纹理将被加载到内存中。但是,然后我将不得不区分所有 iPhone 型号(特别是在 @2x 声明的 iphone 5 和 6)。如果我将所有设备的相关 PNG 文件打包在一起,我的说法是否正确?

如果没有,我决定将 PNG 分成它们自己的设备图集,并编写一些代码来区分和加载正确的图集。

最佳答案

创建一个文件夹.atlas 然后将所有图像添加到该文件夹​​中,确保使用正确的命名约定,例如

rocky~ipad.png
rocky@2x~ipad.png
rocky@2x~iphone.png
drago~ipad.png
drago@2x~ipad.png
drago@2x~iphone.png

然后,将该 folder.atlas 添加到您的项目中,并进行 xcode 构建。

在 xcode 的 products 文件夹中搜索 .app 包,然后右键单击选择在 finder 中显示,然后右键单击包并选择包​​的显示内容,在那里你会找到 folder.atlasc 和 folder.1~ipad.png , folder.1@2x~ipad.png and folder.1@2x~iphone.png, 每个图集都有相应的大小和一个包含对它们的引用的 .plist 文件。

另请注意,atlas 文件中的“.1”用于计算图集,因为当图像大于 atlas 允许的大小时,xcode 将制作更多图集并按照该约定计算它们。

不用担心更大。

如果需要,请检查此 link

thanks.

关于ios - 如何为 Sprite-Kit 组织纹理图集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25818521/

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