0

楽しみのために、Pygame を使用して Python で Pong を作成しています。私は反射でいくつかの問題に遭遇しました。

したがって、ボールには角度が関連付けられています。正の y が下向きなので、この角度は下向きです。ボールが上または下の壁に当たった場合、角度を無効にするだけで適切に反射しますが、問題は左右の壁にあります。この場合、角度を変更する方法の三角法がわかりません。現在、以下のスニペットの組み合わせを試していますが、うまくいきません。

 self.angle = -(self.angle - math.pi/2)

コードを添付しました。自分で簡単に試すことができます。まだ含めていない、または使用していない「フレームレート」モジュールを取り出すことを忘れないでください。ご意見をいただければ幸いです。ありがとう!

4

2 に答える 2

1

入射角を調べる必要があります。

ここに画像の説明を入力

基本的に、入ってくるベクトルとボールが当たっている壁の法線との間の角度シータを見つけたいと思うでしょう。入ってくる角度が (壁の法線) -シータである場合、結果の角度は (壁の法線) +シータです。

角度は、入力ベクトルと壁の法線の間の内積を使用して見つけることができ、逆コサインを取得します (最初にベクトルを正規化します)。

于 2012-01-05T00:32:39.163 に答える
0

次を使用する必要があります。

math.pi - angle
于 2012-01-05T00:24:18.117 に答える