PhysicsCollision Cocos2d/Swift

1 collision-detection cocos2d-iphone swift

我正在使用Cocos2d-iphone在新的Apple编程语言Swift中编写2D游戏.我遇到碰撞检测问题.我已经在我的类中添加CCPhysicsCollisionDelegate并实现了CCPhysicsCollisionBegin方法,但是当我尝试运行它时,我得到以下错误:

'CCPhysicsCollisionBegin delegate methods must return a BOOL.'
Run Code Online (Sandbox Code Playgroud)

这是我的方法的样子:

func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, aMan nodeA: CCNode!, fuel nodeB: CCNode!) -> Bool {
        return true
    }
Run Code Online (Sandbox Code Playgroud)

Dio*_*son 5

编辑:看起来这可能是Swift中的一个错误.我无法使用当前版本的Xcode重新创建它.好像你现在可以回到Bool.

您需要返回ObjCBool​​类型,因为Cocos2D-swift是用Objective-C编写的.

您的方法应如下所示:

func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, aMan nodeA: CCNode!, fuel nodeB: CCNode!) -> ObjCBool {
        return true
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用:

func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, aMan: CCNode!, fuel: CCNode!) -> ObjCBool {
        return true
}
Run Code Online (Sandbox Code Playgroud)

然后使用man和fuel而不是nodeA和nodeB引用冲突的节点.