在 Swift 和 SprieKit 中创建游戏。
我有 2 个节点,一个 BridgeNode 和 WaterNode。一个在另一个之上。
两者都有物理实体来检测玩家何时在水中的桥上。两个节点作为场景的子节点独立添加。
当玩家节点跳到桥上时,DidBegin 检测到与水和桥节点的接触。我只希望它检测到 Bridge 节点,因为玩家安全地在 Bridge 上,或者如果玩家在水中。
func didBegin(_ contact: SKPhysicsContact) {
// Did Begin Contact - Contact Testing and actions
let player1 = (contact.bodyA.categoryBitMask == player1Mask) ? contact.bodyA : contact.bodyB
let other = (player1 == contact.bodyA) ? contact.bodyB : contact.bodyA
if other.categoryBitMask == bridgeMask {
print("BRIDGE CONTACT")
}
else if other.categoryBitMask == waterMask {
// Contacted Water
print("WATER CONTACT")
}
}
控制台总是以随机顺序打印两个打印语句。
希望有人可以帮助我检测其中一个。