Swift - Sprite Kit - 场景有不同的大小

时间:2015-05-09 08:47:07

标签: swift sprite-kit

我正在编程游戏,但我有一个问题。我有两个场景。 (1. GameScene 2. PlayScene)。 GameScene显示PlayButton。如果按PlayButton,将显示PlayScene。 PlayScene显示游戏。如果你输掉比赛,GameScene将再次出现。

GameScene - > PlayScene - > GameScene

这是代码,位于GameScene中并呈现PlayScene。

if self.nodeAtPoint(location) == self.playButton {                  // Wenn position des klicks gleich mit position des play button
            println("Go to the game")
            var scene = PlayScene(size: self.size)
            let skView = self.view! as SKView
            skView.ignoresSiblingOrder = true
            scene.scaleMode = .ResizeFill
            scene.size = skView.bounds.size
            skView.presentScene(scene)
        }

这是代码,位于PlayScene中并再次显示GameScene。

if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
                let skView = self.view as SKView!
                skView.ignoresSiblingOrder = true
                scene.size = skView.bounds.size
                scene.scaleMode = .AspectFill
                skView.presentScene(scene)
            }

我的问题是,GameScene首先与PlayScene之后呈现的GameScene大小不同。我不能展示照片,因为我没有10个声誉-.-,但我可以解释一下。例如:GameScene中的PlayButton(在程序启动后显示)小于PlayButton,PlayButne在PlayScene呈现后显示在GameScene中。 我试图改变scaleModes但是没有用。

我尝试获得10个声誉并向您展示一些照片。我希望你理解我的问题。

以下是照片的链接,显示了我的问题。

这是GameScene的“第二个”:

https://drive.google.com/open?id=0B57TI4Xur5Fldy1EcVh6NmVIdm8&authuser=0

这是“第一个”GameScene的呈现:

https://drive.google.com/open?id=0B57TI4Xur5FlR3ZXT2NFSEZRZHc&authuser=0

对不起我的Englisch :)。我是来自德国的学生,我参观了“体育馆”的12年级。

提前致谢!

2 个答案:

答案 0 :(得分:0)

问题可能是您没有使用与第一个场景相同的设置。试试这个。

if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
            let skView = self.view as SKView!
            skView.ignoresSiblingOrder = true
            scene.size = self.size
            scene.scaleMode = self.scaleMode
            skView.presentScene(scene)
        }

答案 1 :(得分:0)

谢谢,但没有用。我尝试了一些其他的改变,但是它有效,但我不知道为什么。

if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
                let skView = self.view as SKView!
                skView.ignoresSiblingOrder = true

                scene.scaleMode = .AspectFill
                skView.presentScene(scene)
            }

现在两个场景都有相同的尺寸。