pong を再作成しようとしていますが、理解できないバグに遭遇しました。
これまでのところ、パドルとボールを表示して、ほとんどの場合好きなように動かすことができましたが、ボールを初期化してランダムな方向に動かすことができないようです。
ボールの方向を設定するコードは次のとおりです
if(inGame == true)
{
double start = -1;
double end = 1;
Random xRand = new Random();
double xResult = start + (end - start) * xRand.nextDouble();
Random yRand = new Random();
double yResult = start + (end - start) * yRand.nextDouble();
System.out.println("xRand: " + xResult);
System.out.println("yRand: " + yResult);
ball.setMove(xResult, yResult);
}
そして、これが私のsetMoveメソッドです
public void setMove(double x, double y){
dx = x;
dy = y;
}
ボールを動かす実際の方法は次のとおりです
public void move(){
x += dx;
y += dy;
}
このメソッドで継続的に呼び出されるもの
public void actionPerformed(ActionEvent e) {
repaint();
paddle.move();
ball.move();
}
現在のコードでは、ボールは基本的に、上、左上、左の 3 方向にしか進みません。乱数を与える印刷行を含めましたが、3方向にしか進んでいないため、数値を四捨五入しているようです。
進行方向のせいで、正の数では機能しないように見えます。また、ランダムに生成された両方の数が正の場合、まったく動きません。
助けていただければ幸いです、ありがとう