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 は float として定義する必要があります。ビューポートが画面サイズに設定されているため int を使用しましたが、最終的には精度が必要であることに気付きました。

于 2013-03-20T17:18:24.857 に答える