所以我一直致力于支持多边形和圆形的2d物理引擎。我已经使用了除圆圈之外的所有碰撞组合的分离轴定理。以下是引擎的基本格式:
*注意:不是实际代码
推进所有身体。
for every body a
{
Vector2 sum = Vector2.Zero;
for every body b where b != a
{
sum += a.collides(b).MinimumTranslationVector;
}
a.Position += sum;
a.velocity += sum;
}
以下是我遇到的问题的视频:http://www.youtube.com/watch?v=kSZeuP4AiQ0&feature=youtu.be
错误是在开头附近看到的弹簧效果。我一直绞尽脑汁试图想出这个问题而且我什么都没想出来。谁能告诉我这是什么问题?
答案 0 :(得分:0)
如果我正确地读取这个伪代码,每当两个物体发生碰撞时,每个物体都会发生位置和速度的变化。然而,当一个落下的盒子撞到一个休息盒时,你希望静止盒子保持静止。