我想要检测我的精灵碰撞和接触,但我不希望它们动态移动(我只需要知道它们已触及)。
仅当我将播放器的didBeginContact(contact: SKPhysicsContact!)
设置为true时,才会调用{p> physicsBody.dynamic
。如何在不影响播放器位置或移动的情况下获取这些委托方法调用?
答案 0 :(得分:3)
您可以在屏幕上固定物体,因此您不需要将重力设置为0(如果您想保持其他物体的重力)。像这样设置对象:
object.physicsBody.dynamic = true
object.physicsBody.affectedByGravity = false
object.physicsBody.pinned = true
使用此设置,您的对象可以在不移动的情况下与其他对象发生碰撞。
答案 1 :(得分:1)
physicsBody
跟随我的场景设置的物理世界。当它们发生碰撞时,它们会与物理世界相互作用,物理世界的默认重力将它们向下拉。
要解决此问题,请在我的场景的init
方法中设置
self.physicsWorld.gravity = CGVectorMake(0, 0)
动态仍然必须设置为true,因为我希望物理主体与物理世界交互,但我不希望物理世界影响它们,所以这就是分辨率。