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 也是球的宽度。这实际上应该是一个常量(静态最终浮点数),因为您将在代码中的多个位置使用它。
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 也是球的宽度。这实际上应该是一个常量(静态最终浮点数),因为您将在代码中的多个位置使用它。