所以我的屏幕是 1280x720,设置如下:
static final float BOX_STEP=1/60f;
static final int BOX_VELOCITY_ITERATIONS=6;
static final int BOX_POSITION_ITERATIONS=2;
static final float WORLD_TO_BOX=0.01f;
static final float BOX_TO_WORLD=100f;
如您所见,我在这里使用非常正常的参数。我将物体的速度设置如下:
if(screenX - slimeBody.getPosition().x * BOX_TO_WORLD > 0)
velocity = 8;
else
velocity = -8;
slimeBody.setLinearVelocity(velocity, 0);
target = screenX;
但后来我想停在给定的点,我使用以下功能:
if(slimeBody.getPosition().x * BOX_TO_WORLD +10 > target && slimeBody.getPosition().x * BOX_TO_WORLD < target)
slimeBody.setLinearVelocity(0,0);
现在我不喜欢使用它,因为它在快速左右移动对象时会产生抖动。这是因为在我为对象设置速度的那一刻,它运行得如此之快,以至于跳过了大量的坐标,以像素为单位在 10-20 的任何地方说话,以 0.10-.20 的米为单位
对我来说,检测到毫米的运动至关重要。现在,如果你要告诉我降低速度,那么对于我的目的来说,移动太慢了。无论如何强制对象注册更多的像素,旅行时的坐标,以便我可以更精确地停止它?