edgeLoopF​​romPath碰撞检测精灵工具包

时间:2015-01-04 22:31:53

标签: ios swift sprite-kit

我将SKNode设置为" world"节点,在这个节点里面我有孩子喜欢的角色,环境等。

我已将world节点设置为具有edgeLoopF​​romPath(world.path)的physicsBody,以及" world"的类别位掩码,但我不确定如何碰撞检测适用于edgeLoopF​​romPath,我的碰撞功能如下所示:

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
    }
然而,这并没有被击中。我对两个位于世界节点内部的物体进行了碰撞,但是我无法弄清楚如何使世界节点内的物体与世界发生碰撞(当它们到达节点的边缘时)

0 个答案:

没有答案