【问题标题】:New scene view not centered after transition from the menu scene view从菜单场景视图转换后新场景视图未居中
【发布时间】:2018-04-27 13:01:36
【问题描述】:

我在 GameScene 完成后创建了一个主菜单场景视图。 GameScene 本身运行良好。但是,从主菜单场景视图传输后,它不会显示在中心。两个 sks 文件具有相同的宽度和高度尺寸以及锚点。这是为什么呢?

class Menu: SKScene {

    var newGameButtonNode: SKSpriteNode?
    var bossFightButtonNode: SKSpriteNode?
    var highScoreLabelNode: SKLabelNode?

    override func didMove(to view: SKView) {        
        newGameButtonNode = self.childNode(withName: "newGameButton") as? SKSpriteNode
        bossFightButtonNode = self.childNode(withName: "bossFightButton") as? SKSpriteNode

        highScoreLabelNode = self.childNode(withName: "highScoreLabel") as? SKLabelNode        
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        //set touch to self

        let touch = touches.first

        if let location = touch?.location(in: self) {            
            let nodesArray = self.nodes(at: location)

            if nodesArray.first?.name == "newGameButton" {                
                let transition = SKTransition.flipHorizontal(withDuration: 0.5)
                let gameScene = GameScene(size: self.size)
                gameScene.scaleMode = .aspectFill
                self.view?.presentScene(gameScene, transition: transition)                
            }
        }        
    }
}

【问题讨论】:

    标签: swift xcode sprite-kit skscene sktransition


    【解决方案1】:

    如果您在场景编辑器中创建了相应的 SKS 文件,那么您可以像这样加载场景...

    // Load the SKScene from GameScene.sks'
    if let GameScene = GameScene(fileNamed: "GameScene")  {
        gameScene.scaleMode = .aspectFill
        self.view?.presentScene(GameScene, transition)
    }
    

    如果您没有在场景编辑器中创建相应的 SKS 文件,而是希望加载在代码使用中创建的场景...

    GameScene = GameScene(size: self.view?.bounds.size)
    gameScene.scaleMode = .aspectFill
    self.view?.presentScene(gameScene, transition)
    

    您说两者都有相应的 SKS 文件,但您正试图通过场景中的代码 init 加载它

    【讨论】:

    • 谢谢,罗恩!我确实有一个相应的 SKS 文件,所以第一个建议的代码有效。
    猜你喜欢
    • 2022-12-14
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 2014-06-17
    • 2020-12-03
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多