我创建了一个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行似乎不是问题。
答案 0 :(得分:0)
错误消息是您的应用程序逻辑正在尝试调用类setNormalTexture(_:)
上的DiceWar.HomeScene
,但该类不知道如何处理该方法调用。
此操作只能由SKSpriteNode对象执行。