1

ブレイクアウト ゲームを作成しています。以前にここで質問しましたが、解決策が提案されませんでした。Yパドルとの衝突時にボールの速度を反転させる単純な物理学があります。しかし、たとえば、ボールがパドルの左側と右側に当たったときなど、より高度な物理システムを実装する必要がありますが、衝突後にボールをどこに向けるかをどのように計算すればよいでしょうか? ブレイクアウトの標準は、衝突がパドルの左側にある場合はボールを左に向け、衝突が右にある場合は右に向けることです。

ボールを打つ位置を計算するにはどうすればよいですか? Xパドル (幅、高さ、位置)、ボール (半径、高さ、幅、X速度YX位置、Y位置など)のすべての側面など、使用できる変数がたくさんあります。マウス リスナーを使用しXて、古い位置から新しいマウスの位置を引いて、パドルの動きを取得したXので、パドルの移動速度と方向を確認できます。

基本的な物理学に精通していて、衝突後にボールを送るための軌道、パス、速度、または方向を計算するのを手伝ってくれる人はここにいますか?!

前もって感謝します。

4

2 に答える 2

1

このように高度な物理学を使用せず、ビリヤード ボールのような動作に満足している場合は、お好みの方法 (nx²+ny²=1 または nx=cos のようにノルム) で衝突点の表面法線 (nx,ny) を計算します。 (a), ny=sin(a)) のように方向を変更します。

dot = nx*vx+ny*vy
vx = vx - 2*dot*nx
vy = vy - 2*dot*ny

これはほぼ静止したパドル用です。移動パドルの場合、提案どおりに実行し、最初に vx からパドル速度 pvx を引き、内積と結果の変化を計算し、パドル速度を足し戻します。または、vx を変更せずに内積だけで減算を行います。

dot = nx*(vx-pvx)+ny*vy
vx = vx - 2*dot*nx
vy = vy - 2*dot*ny
于 2014-04-21T13:41:02.460 に答える