gpt4 book ai didi

java - 如何使图像沿 x 轴反弹?

转载 作者:行者123 更新时间:2023-11-30 04:58:23 27 4
gpt4 key购买 nike

我有一个图像,它在增量时间(dt)内以给定速度水平移动。但问题是,当图像到达世界大小的尽头时,图像不会反弹。我怎样才能使图像向后反弹,以便将其保留在世界内部?

任何帮助都可以。

这是我迄今为止尝试过的:

@Override
public void move(long dt)
{
// v = dx / dt
// dx m = v m/s . dt s

double dt_s = dt / 1e9;
double dx_m = speed * dt_s;


double left_wall = 0;
double right_wall = board.x1_world;

if (x <= right_wall)
{
x += dx_m;
if (x >= right_wall)
{

x = right_wall;
x *= -dx_m;
}
}
}

最佳答案

    @Override
public void move(long dt)
{
double dt_s = dt / 1e9;
double dx_m = speed * dt_s;


double left_wall = 0;
double right_wall = board.x1_world;

x += dx_m;
if (x <= 0) speed *= -1.0;
if (x >= right_wall) speed *= -1.0;
}

当图像的 x 坐标到达边界时,只需更改水平速度的方向(将其乘以 -1)。但你应该使用这样的条件:

if (x >= (right_wall - width_of_image)) speed *= -1.0;

而不仅仅是x >= right_wall,因为这样做,图像在“触及”世界尽头时会反弹。

关于java - 如何使图像沿 x 轴反弹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7755702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com