2

我对 XNA 和游戏开发还很陌生,并且停留在球反射上。我的球一旦击中球棒就会反射,但只有一个角度,不管球棒在哪个角度。

这是代码:

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 回答