私は反時計回りの方向に回転する画像を持っています。その間、または壁に触れるたびにランダムな方向に移動したい。問題は私がそれをすることができない、この問題について私を助けてください。イメージをランダムな方向に移動するにはどうすればいいですか?
これは私のコードです:
private double x;
private double y;
private double speed;
public void move(long dt)
{
double dt_s = dt/1e9;
double dx = speed * dt_s;
double dy = speed * dt_s;
final double right_border = 100;
final double up_border = 100;
final double down_border = 0.0;
final double left_border = 0.0;
x += dx;
if (x >= right_border)
{
x = right_border;
if (y >= down_border)
{
y += dy;
}
}
if (y > up_border)
{
y = up_border;
if (x >= left_border)
{
speed *= -1;
}
}
if (x <= left_border)
{
x = left_border;
if (y <= up_border)
{
y += dy;
}
}
if (y < down_border)
{
y = down_border;
if (x <= right_border)
{
speed *= -1;
}
}
}
ランダムな方向が欲しいのですか、それとも境界から「バウンス」したいですか? – user995048
ランダムな方向。 – jinHo
ラジアンで方向を指定し、三角関数を使用して、デルタxとデルタyを計算して所定の距離を移動させます。 –