SpriteKit线和圆的碰撞角度是奇数

时间:2015-06-22 14:00:38

标签: ios sprite-kit skphysicsbody

假设一个圆圈被包围在一颗钻石中,并且圆圈头部正确。我期待一系列连续的90度角,因为圆圈在钻石内画出一个正方形。

然而,我所看到的是,在一次或两次碰撞后,圆圈最终会被推向钻石的中心。发生了什么事?

该行设置为动态 - > NO。

collision image

1 个答案:

答案 0 :(得分:1)

球被对称地反射到其接近角度,假设它是完全弹性的碰撞。这意味着,为了获得你正在寻找的行为,球需要从一条线中间点到下一条线接近完全而不会有任何能量损失。

Sprite Kit的物理引擎将无法处理这些确切的值。 Sprite Kit中弹性碰撞后的能量无法保证。物理引擎的浮点计算会有很小的不准确性。此外,碰撞本身可能无法被解析为完美的点对点反射,这意味着球可能会“滑动”,这将导致反射角度发生变化。

然而,我仍然期望看到更多的碰撞然后只有一两个。确保两个对象的restitution都设置为1.0并确保球的linear damping设置为0. affectedByGravity显然应该为false。 Friction应设置为0.您可以尝试将usesPreciseCollisionDetection设置为true。

如果您需要将图片中描述的行为无限期地使用,则需要手动设置位置和速度。