更改哪个场景必须在GameViewController中首先出错

时间:2017-05-22 19:25:28

标签: swift xcode sprite-kit

我创建了一个HomeScene.sks和一个HomeScene.swift。在GameViewController中,我改变了默认的" GameScene"到#S; HomeScene"像这样"

   override func viewDidLoad() {
    super.viewDidLoad()

    if let view = self.view as! SKView? {
        // Load the SKScene from 'HomeScene.sks'
        if let scene = SKScene(fileNamed: "HomeScene") {
            // Set the scale mode to scale to fit the window
            scene.scaleMode = .aspectFill

            // Present the scene
            view.presentScene(scene)
        }

        view.ignoresSiblingOrder = true

        view.showsFPS = true
        view.showsNodeCount = true
    }
}

当我在模拟器中运行它时,它会显示LaunchScreen但不会停止。在我的xcode输出屏幕中,我看到:

  

2017-05-22 21:02:07.910 DiceWar [88707:2060079] - [DiceWar.HomeScene setNormalTexture:]:无法识别的选择器发送到实例0x7fdba6008af0   2017-05-22 21:02:07.915 DiceWar [88707:2060079] ***由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [DiceWar.HomeScene setNormalTexture:]:无法识别选择器发送到实例0x7fdba6008af0'

我用Google搜索但无法找到有用的东西。这些线告诉我什么?我使用了不好的纹理吗?我也尝试在HomeScene.swift中发出所有代码,但错误仍然存​​在。

我不确定是不是因为英语不是我的母语,或者是我的逻辑,但我真的不明白xcode试图告诉他们我

修改 我想我找到了。因为有一些纹理。我从HomeScene.sks中删除了一个Color Sprite,现在它确实启动了。当我更换Color Sprite时,直到我使用此行时才出现问题:

settingsButton = self.childNode(withName: "settingsButton") as! SKSpriteNode

奇怪的是,我使用了确切的一行代替另一个图像(而不是settingsButton,我使用了playButton)playButton行似乎不是问题。

1 个答案:

答案 0 :(得分:0)

错误消息是您的应用程序逻辑正在尝试调用类setNormalTexture(_:)上的DiceWar.HomeScene,但该类不知道如何处理该方法调用。

来自documentation

  

此操作只能由SKSpriteNode对象执行。