【问题标题】:Thrust movement on single axis, very strange behaviour单轴推力运动,非常奇怪的行为
【发布时间】:2013-03-20 16:52:41
【问题描述】:

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

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

【问题讨论】:

  • 我注意到您的第一个 if 语句没有大括号。这样做是有原因的吗?

标签: java math libgdx game-physics


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-13
    • 2011-03-01
    • 2018-08-19
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2020-02-09
    相关资源
    最近更新 更多