3

私は Java で pong を作成しており、次のように、パドルの各部分に異なるリフレクション ロジックを割り当てることで、ゲームをより楽しくしたいと考えていました。

(ボールをパドルの外縁に当てると、パドルの中央に当てるのとは異なる効果があります)

ここに画像の説明を入力

パドルは Rectangle2D を拡張するので、Rectangle2D のintersects()メソッドを使用して、ボールがその一部に触れたかどうかを判断できます...

ボールがパドルのどこに当たったかを正確に判断することはできますか?

私がやろうとしていることは、

  • それに基づいて入射角と反射角を計算します...
  • ボールがパドルの点 x に当たった場合...それに応じて反射角度を変更します

ここに画像の説明を入力

ありがとう

4

3 に答える 3

1

ボールがパドルのどこに当たったかを正確に判断することはできますか?

私だったら、ボールとパドルの両方の現在の座標を取得します。パドルの場合は、2 セットの y 座標を取得して、ボールに面している線を記述できます。すなわち:

int paddleY1 = paddle.y;
int paddleY2 = paddle.y + paddle.width;

// assuming the paddle can only go up and down, y is the only co-ordinate that matters.

次に、パドルの中点を次のように計算できます。

int paddleYMid = (paddleY1 + paddleY2) / 2;

y 座標を比較することで、ボールがパドルの左側または右側に当たったかどうかを確認できます。すなわち:

if(ball.y > paddleYMid)
{
   // Right side of the paddle.
}
else
{
   // Left side of the paddle.
}

その後、さらなる改良を開発するのはあなた次第です。

于 2013-05-23T15:52:44.900 に答える