加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 如何在GameViewController.swift中加载与GameScene.swi

发布时间:2020-12-14 19:19:52 所属栏目:百科 来源:网络整理
导读:在GameViewController. swift中,我找到了这一行 if let scene = GameScene(fileNamed:"GameScene") { 而且我一直认为,如果我想加载GameScene.swift以外的东西,我可以将“GameScene”更改为“LandingPage”,一切都可以正常工作.但是,正如我最近发现的那样,“G
在GameViewController. swift中,我找到了这一行

if let scene = GameScene(fileNamed:"GameScene") {

而且我一直认为,如果我想加载GameScene.swift以外的东西,我可以将“GameScene”更改为“LandingPage”,一切都可以正常工作.但是,正如我最近发现的那样,“GameScene”实际上是指GameScene.sks而不是swift文件.

我正在寻找一个具有多个级别的游戏,每个级别都用自己的swift文件编写.我应该去哪里/如何从level1.swift移动到level2.swift?

解决方法

如果你在一个场景中,例如关卡选择场景,让我们说LevelSelectionScene.swift,你可以通过SKView的-presentScene:transition:方法转到另一个场景.

class LevelSelectionScene: SKScene {

    override func didMoveToView(view: SKView) { /* ... */}

    func selectLevel(level: Int) {
        let fadeTransition = SKTransition.fadeWithDuration(0.3)
        if let selectedLevel = createLevelSceneWithLevel(level) {
            self.view?.presentScene(selectedLevel,transition: fadeTransition) 
        }
    }


    // Not a good idea if you progressively adding new levels,// it's totally depend on how you gonna organize your levels.
    // Since its level input is not arbitrary,the output of this
    // rarely nil,if it does,it must be the developer mistake.
    func createLevelSceneWithLevel(level: Int) -> SKScene? {
        let levelScene: SKScene?
        switch level {
            case 1: levelScene = Level1()
            case 2: levelScene = Level2()
            default: levelScene = nil
        }
        return levelScene
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读