2

私はXNAとゲーム開発にかなり慣れておらず、ボールの反射にこだわっています。私のボールはバットに当たると反射しますが、バットがどの角度にあるかに関係なく、1つの角度でしか反射しません。

コードは次のとおりです。

if (BallRect.Intersects(BatRect))
    {
        Vector2 NormBallVelocity = Ball.velocity;
        NormBallVelocity.Normalize();
        NormBallVelocity = Vector2.Reflect(Ball.velocity, NormBallVelocity);
        Ball.velocity = NormBallVelocity;
    }

ボールは後退しています。ボールがバットに反射しているように見せるためにどうすればよいですか?

他の投稿を見たことがありますが、それらは3Dの前面にあり、2D用語に翻訳するには新しすぎます...

4

3 に答える 3

4

私はあなたがボールの速度の代わりにバットの法線を反映する必要があるとかなり確信しています、そしてそれは正常です。

于 2010-04-25T03:38:34.477 に答える
1

MSDN Reflect Methodを参照すると、バットの速度と法線から反射したいようです。

于 2010-04-25T03:41:29.133 に答える
-1

おそらく、最初にバットが水平からどれだけ離れているか(たとえば、スイングでバットに沿ってどれだけ離れているか)を計算してから、90度回転させて、ボールに必要な角度を取得する必要があります。

于 2010-04-25T03:38:52.337 に答える