【问题标题】:second scene in sprite kit changes position (anchor point)精灵套件中的第二个场景改变位置(锚点)
【发布时间】:2018-02-28 16:00:17
【问题描述】:

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

这是我从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)
        }
    }
}

提前致谢!!

【问题讨论】:

    标签: swift xcode swift3 sprite-kit


    【解决方案1】:

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

    【讨论】:

    • 我将其更改为GameScene(fileNamed:"GameScene"),但随后出现此错误:无法将类型“GameScene.Type”的值转换为预期的参数类型“字符串”......你的意思是“旧”场景'?
    • 你打错了一些东西,我假设你忘记了 "GameScene" 的引号至于旧场景.....你正在从旧场景过渡到新场景,截至目前self 是您的旧/当前场景
    • ...我只是忘记了它必须是一个字符串并且忘记了我的引号...谢谢一百万!
    猜你喜欢
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2014-09-26
    • 1970-01-01
    相关资源
    最近更新 更多