【发布时间】:2015-06-22 14:00:38
【问题描述】:
假设一个圆圈被一个菱形包围,并且圆圈向右。当圆圈在菱形内画出正方形时,我预计会出现一系列连续的 90 度角。
然而,我看到的是,在一两次碰撞后,圆圈最终会被推向钻石的中心。怎么回事?
线路设置为动态 -> NO.
【问题讨论】:
标签: ios sprite-kit skphysicsbody
假设一个圆圈被一个菱形包围,并且圆圈向右。当圆圈在菱形内画出正方形时,我预计会出现一系列连续的 90 度角。
然而,我看到的是,在一两次碰撞后,圆圈最终会被推向钻石的中心。怎么回事?
线路设置为动态 -> NO.
【问题讨论】:
标签: ios sprite-kit skphysicsbody
假设它是完全弹性碰撞,球会与其接近角对称地反射。这意味着,要获得您正在寻找的行为,球需要从一条线的中点准确接近另一条线的中点,而不会损失任何能量。
Sprite Kit 的物理引擎将无法处理这些精确值。 Sprite Kit 中弹性碰撞后的能量不能保证是守恒的。物理引擎的浮点计算会有一些小的误差。此外,碰撞本身可能无法解决为完美的点对点反射,这意味着球可能会“滑动”,从而导致反射角度发生变化。
但是,我仍然希望看到更多的碰撞,而不是一两次。确保两个对象的restitution 设置为1.0,并确保球的linear damping 设置为0。affectedByGravity 显然应该为假。 Friction 应设置为 0。您可以尝试将 usesPreciseCollisionDetection 设置为 true。
如果您需要您在图片中描述的行为无限期地持续,您将需要手动设置位置和速度。
【讨论】: