lidbgx 从右向左移动对象

lidbgx move objects from right to left

batch.begin();

    batch.draw(tr_background, 0, 0, 3024, 1443);

    batch.draw(tr_ball, x, 110, 100, 100);

    batch.end();

    x = x + 100 * Gdx.graphics.getDeltaTime();

    if(x > camera.viewportWidth)
        x = -100;

它从左到右移动然后回到起始位置。 tr_ball到达右侧时如何从右向左移动?

为 class

创建球速变量
float ballSpeed = 100;

然后当球越过屏幕末端时翻转它。因此,在上面的 batch.end() 之后替换您的代码:

x += ballSpeed * Gdx.graphics.getDeltaTime();

if (x >= camera.viewportWidth - 100) {
    x = camera.viewportWidth; // prevent overshooting
    ballSpeed *= -1;
} else if (x <= 0) {
    x = 0; // prevent overshooting
    ballSpeed *= -1;
}

此代码假定您的相机位于屏幕左边缘的 0 处。 100 也是球的宽度。这实际上应该是一个常量(静态最终浮点数),因为您将在代码中的多个位置使用它。