Ios 从另一个类调用genericnode类中的函数
在我的GameSecene.swift类中尝试调用genericnode类中的Ios 从另一个类调用genericnode类中的函数,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,在我的GameSecene.swift类中尝试调用genericnode类中的endGame()函数时卡在这里。当我试图通过调用gamesene().endGame()访问它时,我得到了错误: 无法在没有参数的情况下调用类型“GameSecene”的初始值设定项 游戏场景: class GameScene: SKScene, SKPhysicsContactDelegate { required init?(coder aDecoder: NSCoder) { super
endGame()
函数时卡在这里。当我试图通过调用gamesene().endGame()
访问它时,我得到了错误:
无法在没有参数的情况下调用类型“GameSecene”的初始值设定项
游戏场景:
class GameScene: SKScene, SKPhysicsContactDelegate {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(size: CGSize){
super.init(size: size)
}
func endGame() {
gameOver = true
scoreboardSetup()
}
}
carNode.swift
enum CarType:Int {
case normalCar = 0
}
class carNode: GenericNode {
var carType:carType!
override func collisionWithPlayer(player: SKNode) -> Bool {
GameScene().endGame() //Gives me an error
return false
}
}
在初始化
游戏场景时,您需要传入一个CGSize
,就像游戏场景一样(大小:CGSize(宽度:0,高度:0)。endGame()
或者您可以将endGame()
方法设为静态。static endGame()
然后像GameScene.endGame()那样调用它
希望这有帮助。这些解决方案都不起作用。对于游戏场景(大小:CGSize(宽度:0,高度:0)。endGame()
我遇到致命错误:在展开可选值时意外发现零。对于静态endGame())
i get error一行中的连续声明必须用“;”分隔,不需要所有这些。您应该直接在场景中处理碰撞并运行endGame()从这里开始。这个方法除了结束游戏之外什么都不做,所以把它作为CarNode类的一部分是没有意义的。所以,我所说的,这对你来说是一个最简单的方法。否则,你可以使用委派(场景将作为CarNode类的委派)来完成这项工作.从未听说过这种方法,威尔会读到。你能举个例子说明如何进行吗delegation@riik在这种情况下,类型方法(静态)将不起作用。您对类型而不是实例调用类型方法。endGame()显然,游戏结束了…意味着,它会重置场景,移除节点,显示分数,转换到另一个场景,诸如此类的东西…例如,self.view.presentScene()之类的东西将不可能实现,等等。或者在初始化游戏场景时,您需要传入CGSize
,比如游戏场景(大小:CGSize(宽度:0,高度:0).endGame()
或者,您可以将endGame()
方法设置为静态。static endGame()
然后像GameSecene.endGame()
那样调用它。这些解决方案都不起作用。对于游戏场景(大小:CGSize(宽度:0,高度:0)。endGame())
i get Fatal error:在展开可选值时意外发现nil。对于static endGame()
i get error,一行上的连续声明必须用“;”分隔,不需要所有这些。您应该直接在场景中处理冲突并运行endGame()从这里开始。这个方法除了结束游戏之外什么都不做,所以把它作为CarNode类的一部分是没有意义的。所以,我所说的,这对你来说是一个最简单的方法。否则,你可以使用委派(场景将作为CarNode类的委派)来完成这项工作.从未听说过这种方法,威尔会读到。你能举个例子说明如何进行吗delegation@riik在这种情况下,类型方法(静态)将不起作用。您对类型而不是实例调用类型方法。endGame()显然,游戏结束了…意味着,它重置场景,移除节点,显示分数,转换到另一个场景,诸如此类的事情…例如,self.view.presentScene()之类的东西将不可能实现,等等。