我在将contactDelegate分配给self(GameScene)时遇到了一个问题。
override func didMoveToView(view: SKView)
{
self.physicsWorld.contactDelegate = self
/* ... */
}
不幸的是,我收到了一个错误:
无法将“GameScene”类型的值分配给“SKPhysicsContactDelegate”类型的值吗?
这在Xcode的早期版本中不会发生(可能是Swift 2.0中的新功能),所以即使在Apple Developer的SpriteKit文档中,它们也有相同的代码。
我如何解决这个问题?我已经尝试强迫施法
self.physicsWorld.contactDelegate = (self as! SKPhysicsContactDelegate)
但是我遇到了运行时错误(无法执行转换)。
任何人都知道如何将联系人委托给我的GameScene?
答案 0 :(得分:2)
我知道在我的项目中(我假设是swift 1)你必须将游戏场景定义为SKPhysicsContact Delegate。
class GameScene: SKScene, SKPhysicsContactDelegate {
}
并将其设置为我刚才所做的委托。
self.physicsWorld.contactDelegate = self
不" as"需要运营商。
答案 1 :(得分:1)
您可能忘记在课程顶部添加SKPhysicsContactDelegate
。