AppImage我有一个4个不同颜色的矩形墙,穿过墙壁,球的颜色必须与墙上的矩形相匹配。球将穿过墙壁,并出现一堵新墙。但是,当我检测到这种碰撞时,我会得到多个碰撞读数。我已经通过打印死或活来测试它,并且它打印两次或更多次。
func didBegin(_ contact: SKPhysicsContact) {
if let nodeA = contact.bodyA.node as? SKShapeNode, let nodeB = contact.bodyB.node as? SKShapeNode {
if nodeA.fillColor != nodeB.fillColor {
print("DEAD")
}
else {
print("Alive")
}
}
}
请帮助!!!
答案 0 :(得分:3)
didBegin
)是为了确保你的联系代码适应这种情况,多次处理合同不会导致问题(例如多次添加分数,删除多个生命,尝试访问已删除的节点或physicsBody等)。
这里有一个讨论:Sprite-Kit registering multiple collisions for single contact
您可以做的一些事情包括:
nil
你删除它(对于重复的联系人)didFinishUpdate
userData
inactive
属性