在不同的碰撞类别上使用单独的功能

时间:2015-05-11 14:25:05

标签: ios swift sprite-kit

我目前正在设计一款带有三个SKPhysics类别的游戏(iOS Swift,Sprite Kit):

  1. 播放器
  2. 物件
  3. 平台
  4. 当发生这些类别中的任何一个之间发生冲突时,将运行以下函数:

    func didBeginContact(contact: SKPhysicsContact) {
        println("Collision")
        self.gameOver = true
    
    }
    

    这适用于玩家和物体碰撞时,但当玩家在平台上行走时它不应该运行。

    如何为某些类别之间的碰撞设置特定功能?或者,为了重新解释我的问题,如何在上述功能中指定不同的碰撞?

    谢谢,伙计们!

1 个答案:

答案 0 :(得分:2)

您应该使用您的联系参数并使用其属性。具体而言,bodyA和bodyB将允许您区分哪些实体发生了碰撞。只需将它们放在if语句中,如下所示,

    if((bodyA.physicsBody == hero.physicsBody) && (bodyB.physicsBody == platform.physicsBody)){
    //Perform relevant code
    }
    else if((bodyA.physicsBody == hero.physicsBody) && (bodyB.physicsBody == heartPickup.physicsBody)){
//Perform relevant code
}

这将允许您根据已连接的精灵/物理实体运行不同的代码部分。