我正在尝试暂停或停止正在重复的SKAction,这会在用户按下暂停按钮时发生。我找到了一种方法来停止音乐,但由于这个错误,我无法调用它所处的功能。它准确地说:Missing argument for parameter 'coder' in call
。
Class GameViewController: UIViewController, SwiftrisDelegate, UIGestureRecognizerDelegate {
@IBAction func didPause(sender: UIButton) {
if self.scene.paused == false{
self.scene.stopTicking()
self.scene.paused = true
GameScene().stopGameMusic() //error on this line
}
}
}
class GameScene: SKScene {
runAction(SKAction.playSoundFileNamed("theme.mp3", waitForCompletion: true), withKey:("themeSong"))
func stopGameMusic() {
removeActionForKey("themeSong")
}
}
答案 0 :(得分:1)
GameScene
没有不带参数的初始值设定项 - 你没有定义一个也不是从SKScene
继承的一个。如果你想在每次'暂停'时创建一个GameScene
,这本身就是一个有问题的方法,那么你需要调用一个现有的初始化程序或创建一个没有任何参数的初始化程序。
看起来SKScene
的指定初始值设定项为init(size: CGSize)
。因此,而不是简单地调用GameScene()
来电GameScene(size: ...)
或在课程GameScene
中定义
class GameScene : SKScene {
// ...
init () {
super.init (size: ...)
}
}