我有球在四处弹跳,每次它们碰撞时,它们的速度矢量都会因恢复系数而减小。
现在我的球的 CoR 是 .80 。因此,在多次反弹后,我的球“停止”滚动,因为它们的速度变得非常小。
在哪个阶段检查速度值是否足够小以简单地将其称为零是合适的(所以我没有球对它们的微速度做出反应的疯狂抖动)。我之前在一些论坛上读过,人们有时会使用一个 epsilon 常数,一些很小的数字并检查它。
我是否应该定义一个 epsilon 常量并执行以下操作:
if Math.abs(velocity.x) < epsilon then velocity.x = 0
每次我更新球的速度和位置?这是一般的做法吗?将它放在我的 x 和 y 的 Vector 类设置器中是否合理?或者当我计算速度时我应该在我的矢量类之外做它。
另外,如果我使用浮点数作为速度向量,那么合理的 epsilon 值是多少?