3

我正在做一个项目,我有一个 2D 滚动的大理石。我可以检测到大理石何时撞到盒子的​​角落,但我无法弄清楚它撞到角落时应该有什么行为。我需要弄清楚如何重新定位球,以免它与盒子重叠。对于一个盒子到盒子的碰撞,就像将盒子设置在彼此旁边一样简单,但是对于一个圆圈和盒子,我不知道将大理石移动到哪里,所以它看起来很逼真。

我不是在问它是如何反弹的。我对三角有很好的理解。当您将弹珠移向盒子时,它会在某个时候与盒子重叠。我需要知道如何制作它,这样它们就不会再重叠了,但它看起来仍然很逼真。它不需要反弹(就像假设大理石的一部分有无限大的质量)。

4

1 回答 1

1

好好看看维基百科上的这篇文章:弹性碰撞

您将需要在任何给定的表面点为您的 2D 对象创建表面法线,如果您的框是完全正方形的,这将是有问题的,因为锋利的边缘没有法线。您必须对拐角情况(没有双关语)进行特殊处理,并为它们提供表面法线,即在拐角处连接的两条线的法线的平均值。

基本上,使用向量。

于 2012-06-17T22:39:07.307 回答