swift - Sprite 套件中的第二个场景改变了位置( anchor )

标签 swift xcode swift3 sprite-kit

当我从 MenuScene 中单击 playButton 以更改为 GameScene 时,它工作正常。只有每个节点、 Sprite ……在我的 GameScene 中的位置发生变化。这就像 anchor 从 (0,5 ; 0,5) 变为 (0,0)。我不知道在哪里或要更改什么。在我的 .sks 文件中,属性检查器中的两个 anchor 是相同的。

这是我从 MenuScene 更改为 GameScene 的代码: 这是在MenuScene中写的:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

  let touch = touches.first

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

        if nodeArray.first?.name == "playButton" {
            let transition = SKTransition.fade(withDuration: 0.5)
            let gameScene = GameScene(size: self.size)
            gameScene.scaleMode = SKSceneScaleMode.aspectFill
            self.view?.presentScene(gameScene, transition: transition)
        }
    }
}

提前致谢!

最佳答案

这一行 GameScene(size: self.size) 意味着您正在创建一个默认的 GameScene 对象,其大小与前一个场景相同。几乎不惜一切代价避免使用这个初始化器。取而代之的是 GameScene(fileNamed:"GameScene") 并将您的 scaleMode 从旧场景设置为这个场景

关于swift - Sprite 套件中的第二个场景改变了位置( anchor ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46307688/

相关文章:

swift - 任何想法如何为 swift 3 安装 'ReachabilitySwift'?

ios - AVAudioPlayerNode 不播放声音

swift - 如何放大 NSSearchField 上的搜索图标?

swift - Swift 中的 animateWithDuration - 找不到成员 'CurveEaseOut'

ios - 什么时候在 Swift 中使用@objc?

ios - 无法验证客户端 3000

ios - XCODE 9 和 ionic ios 应用程序构建失败

arrays - 无法分配给属性 : 'itemArray' is a get-only property

ios - 无法移动 UIImageView

core-data - Swift 3 从 appDelegate 中的 SQL 文件预加载