如何解决是否可以以编程方式将图集文件从视图控制器更改为 GameScene?
robotSprites.append(robotAtlas.textureNamed("robo1"))
robotSprites.append(robotAtlas.textureNamed("robo2"))
robotSprites.append(robotAtlas.textureNamed("robo3"))
robotSprites.append(robotAtlas.textureNamed("robo4")) to something like
robotSprites.append(robotAtlas.textureNamed("\(otherAtlasFile1)"))
robotSprites.append(robotAtlas.textureNamed("\(otherAtlasFile2)"))
robotSprites.append(robotAtlas.textureNamed("\(otherAtlasFile3)"))
robotSprites.append(robotAtlas.textureNamed("\(otherAtlasFile4)"))
我将创建一个“选择角色”按钮,然后图集文件将根据选择的角色进行更改。
解决方法
您可以将两个地图集都保存在内存中,只需根据布尔值选择一个。不要忘记在您的应用启动时使用 preload(completionHandler:)
预加载您的地图集。
这是一个可能的解决方案:
let robotAtlas = SKTextureAtlas(named: "atlas1")
let otherAtlas = SKTextureAtlas(named: "atlas2")
static var isRobot = false
var robotSprites = [SKTexture]()
var otherSprites = [SKTexture]()
func loadTexures(textures: [String]) {
let atlas = GameScene.isRobot ? robotAtlas : otherAtlas
var spriteArray = GameScene.isRobot ? robotSprites : otherSprites
for i in 0..<textures.count {
let texture = atlas.textureNamed("\(textures[i])")
spriteArray.append(texture)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。