我将SKNode设置为" world"节点,在这个节点里面我有孩子喜欢的角色,环境等。
我已将world节点设置为具有edgeLoopFromPath(world.path)的physicsBody,以及" world"的类别位掩码,但我不确定如何碰撞检测适用于edgeLoopFromPath,我的碰撞功能如下所示:
func didBeginContact(contact: SKPhysicsContact) {
if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask {
firstBody = contact.bodyA
secondBody = contact.bodyB
} else {
firstBody = contact.bodyB
secondBody = contact.bodyA
}
if ((firstBody!.categoryBitMask == PhysicsCategory.Hero) &&
(secondBody!.categoryBitMask == PhysicsCategory.World)) {
heroDidCollideWithWorld(firstBody!.node!, world: secondBody!.node!);
}
}
theres更多的功能,但我想保持它的相关部分,以及相应的heroDidCollide函数:
func heroDidCollideWithWorld(hero:SKNode, world:SKNode) {
(hero as Character).negativeEffect.runningSpeed = 0
}
然而,这并没有被击中。我对两个位于世界节点内部的物体进行了碰撞,但是我无法弄清楚如何使世界节点内的物体与世界发生碰撞(当它们到达节点的边缘时)