2D Gaming - Как отразить мяч на лету? - PullRequest
2 голосов
/ 25 апреля 2010

Я довольно новичок в XNA и разработке игр и застрял в отражении мяча. Мой мяч отражается, когда попадает в летучую мышь, но только под одним углом, независимо от того, под каким углом летучая мышь.

Вот код:

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

Мяч возвращается назад. Как мне сделать так, чтобы мяч отражался от летучей мыши?

Я видел другие посты, но они на 3D фронте. Я слишком новичок, чтобы перевести его на 2D термины ...

Ответы [ 3 ]

4 голосов
/ 25 апреля 2010

Я почти уверен, что вам нужно отразить нормальную летучую мышь вместо скорости мяча, и это нормально.

1 голос
/ 25 апреля 2010

Обращаясь к MSDN Reflect Method , похоже, что вы хотите отразить скорость и скорость летучей мыши.

0 голосов
/ 25 апреля 2010

Вероятно, вам следует сначала рассчитать, насколько далеко от горизонта находится летучая мышь (например, как далеко она находится на качелях), а затем повернуть ее на 90 градусов, чтобы получить угол, необходимый для мяча.

...