在程序中我有移动的物体。他们的velocyties用Vector(x,y)描述 因此,我希望对象减速 - 如果他们因为碰撞而获得速度,我会在下一帧中缩小它们(因子为0.999)直到它们停止,因为速度很小,你看不到它们在移动(java得到1e-50或者像那样)。
它的工作,但实际上它不正确,因为缩小它们在理论上永远不会停止。那么我怎样才能让速度变为零,让它 REACH 为零?
答案 0 :(得分:1)
一旦低于某个阈值,只需将其设置为零:
if (velocity.magnitude() < threshold) {
velocity = new Vector(0, 0);
}
然而,由于算术下溢, 最终会自行发生。