【问题标题】:Using separate functions on different collision categories对不同的碰撞类别使用单独的函数
【发布时间】:2015-05-11 14:25:04
【问题描述】:

我目前正在设计一个包含三个 SKPhysics 类别的游戏(iOS Swift、Sprite Kit):

  1. 播放器
  2. 对象
  3. 平台

当任一类别发生冲突时,将运行以下函数:

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

}

当玩家和物体发生碰撞时这很好,但当玩家在平台上行走时它不应该运行。

如何为某些类别之间的碰撞设置特定的函数?或者,换个说法,我如何在上述函数中指定不同的碰撞?

谢谢各位!

【问题讨论】:

    标签: ios swift sprite-kit


    【解决方案1】:

    您应该获取联系人参数并使用其属性。具体来说,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
    }
    

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

    【讨论】:

    • 谢谢。稍微修改一下就可以了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2012-09-21
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多