当我从 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/