私はブレークアウトクローンの反射を扱う方法を見つけようとしています。ボールの反射角度Xna c#
私は次の段落の代わりに投稿に画像をアップロードしますが、私はまだまだその特権を得ていません。
ボールが左手と交差する場合は、左に跳ね返りたいと思います。 ボールが右手と交差する場合、右に跳ね返りたいと思う。ボールが中央のセクションと交差する場合、私はそれが途中で跳ね返りたいと思う。私はそれがどのように左、右、または中央のセクションのどの側面が交差していたかに応じて、さまざまな方向にバウンスさせる方法を学びたい
私はこれに3つの別々の矩形を使用しないと思います。 1人でやってください。
私はそれが位置だボールの速度、projVel.
のためのベクトル2を使用し、私はできないので、私は場合の始まりのためproj.collRect
を使用lightRect.
理由があるパドルのためprojPos.
長方形でありますVector2でintersectメソッドを使用します。
これは現在の私の一時的な衝突ハンドラですが、動作しますが、速度はゲームを再生できない程度に変化させます。スピードクランプ私はそれを少し遅く思った。私はprojSpeed
の変数を持っています。私はそれをクランプすることはできません、または停止することはできません。
if (proj.collRect.Intersects(lightSaber.lightRect))
{
proj.projPos.Y = lightSaber.lightRect.Y - proj.projTxr.Height;
proj.projVel.Y *= -1;
proj.projVel.X = 10 * (proj.projPos.X - lightSaber.lightRect.Center.X)/(lightSaber.lightRect.Center.X);
}
proj.projVel.X = Math.Max(-4, Math.Min(proj.projVel.X, 4));
proj.projVel.Y = Math.Max(-4, Math.Min(proj.projVel.Y, 4));
私がこれをやり遂げる方法を教えてもらえたら助かります。メソッド、または.Intersectsの代わりに、私はcollRectの代わりにprojPosを使用できます。
どこから始めたらいいかわかりませんが、別の方法があれば、その例は素晴らしいでしょう。
、ゲーム開発スタック交換で男の上には、助けることができるかもしれません! –
ありがとうございました! – LawrenceB