2009-04-17 5 views

答えて

2

おそらく、必要なものについてもっと具体的にする必要があります。知るべき重要なことは、ボールをバウンスするとき、入射角が反射角と等しいことである。しかし、ゲームのような卓球では、(パドルが弧であるかのように)ヒットしたパドルの部分に基づいて角度を変更します。

ベクトルを使用する場合は、開始点と勾配があります。開始点は、画面の左側にある場合(X == 0)正常スロープインターセプト式がよく、Mは傾きであり、それが交差する場所Bである

Y = mX + B 

を動作するため、あなたは、幸運ですY軸(Xが0のときのYの値)。次に、Xをいくらか増やしてYを計算します。リターンヒットでは、これを逆に実行できます。ベクトルが完全に水平の場合、mは0です。それがパドルに当たったとき、入射角=反射角を維持するためには、-m(パドル上の位置に合わせて調整)を使用するだけです。

とにかく質問がある場合は、この回答にコメントしてください。質問を更新してください。私は詳細を提供しようとします。

+0

こんにちは、あなたの答えに遅すぎるコメントを残して申し訳ありません。しかし、最終的に私はボールを動かすための2Dベクトルを実装することができ、境界から正確に反映しています。 しかし、私は前に言及したように、別の問題に直面しています 「ゲームのようなポンでは、パドルが弧であるかのように、パドルの部分に基づいて角度を変えます。」 今までボールとパドルの交差を検出することができます。しかし、私は反射の角度を計算する際に助けが必要です はパドル上の交点に依存しています。私はボールベクトルの角度を動かしており、それはptを終了します。 – Abhijeet

+0

パドルの中心を0、パドルの最後を数Nとして扱います。中心からの距離に応じて0〜Nの係数を求めます。次に、角度を取って(1 +因子)で乗算する - あなたが好きなものが見つかるまで、Nと距離を因子(線形、​​指数関数など)に変える関数を使って遊んでください。 –

1

GameDev.netには、衝突検出に関するgreat tutorialがあります。これはOpenGLチュートリアルですが、OpenGLを使用しているかどうかは分かりませんが、数学は同じなので便利だと思います。

+0

こんにちは、私はボールを動かすための2Dベクトルを実装しました。しかし、ボールがパドルに当ったときの反射の角度を見つけるのが難しい。パドルは円弧状で幅が増減する 一般化されたコードを書く必要がありますので、plzガイドしてください。 – Abhijeet

関連する問題