从另一个场景

时间:2017-02-04 21:35:41

标签: swift sprite-kit

在我的MenuScene中,我有一个播放按钮,如果我触摸它,它会使用以下代码更改为GameScene:

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

    for touch in touches {
        let location = touch.location(in: self)

        if atPoint(location).name == "playButton" {
            let playScene = GameScene(size: self.size)
            let playSceneTransition = SKTransition.fade(withDuration: 0.5)
            playScene.scaleMode = SKSceneScaleMode.aspectFill
            self.view?.presentScene(playScene, transition: playSceneTransition)

            }
    }

但GameScene看起来像是在左下角,只显示场景的右上角。如果我在开始游戏时更改GameViewCotroller以显示GameScene而不是MenuScene它看起来非常好。这是为什么?代码有什么问题要去GameScene吗?

1 个答案:

答案 0 :(得分:0)

这里的问题是您是通过SKS文件加载MenuScene。默认情况下,这会将您的锚点设置为0.5,0.5。

然后您使用尺寸初始值设定项而不是SKS文件转换到游戏场景GameScene(size: self.size),其定位点为0,0或0.5,0.5,具体取决于您的iOS版本用户正在加载。

我建议您避免使用GameScene(size: self.size)并使用GameScene(fileNamed:"GameScene")来保持自己的一致性。