我目前正在设计一款带有三个SKPhysics类别的游戏(iOS Swift,Sprite Kit):
当发生这些类别中的任何一个之间发生冲突时,将运行以下函数:
func didBeginContact(contact: SKPhysicsContact) {
println("Collision")
self.gameOver = true
}
这适用于玩家和物体碰撞时,但当玩家在平台上行走时它不应该运行。
如何为某些类别之间的碰撞设置特定功能?或者,为了重新解释我的问题,如何在上述功能中指定不同的碰撞?
谢谢,伙计们!
答案 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
}
这将允许您根据已连接的精灵/物理实体运行不同的代码部分。