0

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

我在屏幕上有一个形状,按屏幕左侧将形状向右推,按右侧向左推。由于某种原因,该形状倾向于向左移动 ( 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;
4

1 回答 1

2

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

于 2013-03-20T17:18:24.857 回答