问题描述
将contactDelegate分配给self(GameScene)时遇到了一个问题.
I have just encountered a problem when assigning contactDelegate to self (GameScene).
override func didMoveToView(view: SKView)
{
self.physicsWorld.contactDelegate = self
/* ... */
}
不幸的是,我得到一个错误:
Unfortunately, I get an error:
在以前版本的Xcode(可能是Swift 2.0中的新功能)中不会发生这种情况,因此即使在Apple Developer上的SpriteKit文档中,它们也具有与我相同的代码.
This wouldn't happen in previous versions of Xcode (probably something new in Swift 2.0), so even in SpriteKit documentation on Apple Developer they have the same code I do.
我该如何解决?我已经尝试过强制投射
How do I get around this? I have already tried to force casting
self.physicsWorld.contactDelegate = (self as! SKPhysicsContactDelegate)
但是我遇到了运行时错误(无法执行广播).
but I got a runtime error (casting couldn't be performed).
有人知道如何将联系人委派给我的GameScene吗?
Anyone knows how to delegate contacts to my GameScene?
推荐答案
我知道在我的项目中(我假设是swift 1),您必须像这样将游戏场景定义为SKPhysicsContact Delegate.
I know in my project (swift 1 i assume) you have to define the game scene as a SKPhysicsContact Delegate like so.
class GameScene: SKScene, SKPhysicsContactDelegate {
}
然后将其设置为我刚刚做的代表.
And to set it as the delegate I just do.
self.physicsWorld.contactDelegate = self
不需要作为"运算符.
这篇关于如何在SpriteKit中为PhysicalWorld设置contactDelegate?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!