单轴上的推力运动,非常奇怪的行为

时间:2013-03-20 16:52:42

标签: java math libgdx game-physics

我注意到一些非常奇怪的行为只是一段简单的代码,我已将其删除以删除任何变量,时间步长,加速等等。

我在屏幕上有一个形状,按下屏幕的左侧向右推动形状,按向右侧的左侧推力。由于某种原因,形状有利于向左移动(speed < 0)。它似乎是向右移动时适当减速但向左移动时它完成减速然后在停止前持续0.3秒。

float speed;
int x;

形状的更新方法:

speed *= 0.9f;

if (Math.abs(speed) < 0.1f)
    speed = 0;

if (Gdx.input.isTouched()) {
    if (Gdx.input.getX() < Gdx.graphics.getWidth() / 2) {
        speed = 10;
    } else {
        speed = -10;
    }
}

x += speed;

1 个答案:

答案 0 :(得分:2)

x应定义为float。我使用int因为视口设置为屏幕大小但最终意识到它需要具有精度。