LIBGDX。有没有办法让Vector2在精确点停止具有恒定速度?

时间:2014-07-30 23:49:39

标签: libgdx

例如,假设我有一些东西以恒定的速度移动,位置myposition向下使用这样的东西:

myposition.add(velocity.scl(delta));
//position is a Vector2 and velocity is a Vector2 with a negative y value to make the position become more negative.
//here is where the texture/sprite gets drawn with myposition.y.

但是,我想知道是否有一种方法可以使物体在某个点停止死亡,例如当移动物体的y坐标为0(地面)时,不会过去

1 个答案:

答案 0 :(得分:0)

您必须自行检查边界过境并考虑潜在的“重叠”,例如:

velocity.scl(delta);
boolean willPassZero = myposition.y + velocity.y <= 0;
myposition.add(velocity);
if ( willPassZero )
    myposition.y = 0;

如果你知道你的y位置总是>> 0,那么你也可以使用Math.clamp将y分量一旦越过0边界就拉到0。