微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以以编程方式将图集文件从视图控制器更改为 GameScene?

如何解决是否可以以编程方式将图集文件从视图控制器更改为 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 举报,一经查实,本站将立刻删除。