XNA Pong故障

时间:2014-01-06 04:40:23

标签: c# xna pong

当我跑步时,球接近左侧球拍后,它将提前弹出四分之一的屏幕,然后击球,然后在球移开一点之后,它会开始来回弹跳,好像它正在击球一堵墙。 你能看出我做错了什么(或者不是我应该做的那样)?

ballPos是球位置的Vector2值。 paddleStaticPos.X是桨的X位置(位于左侧5的位置) paddlePos.X是左拨片的Y值。

我知道我应该分别使用左右拨片的矢量值而不是绑定它,但我没有时间再修复它了。 这是代码:

            if (ballPos.X <= paddleStaticPos.X + 15)
            {
                if (ballPos.Y <= paddlePos.X + 25 && ballPos.Y >= paddlePos.X)
                {
                    gameStartpaddleHit = true;
                    lastPaddleHitLeft = true;
                    ballLeft = ballLeft * -1;
                    ballUp = ballUp * -1;
                    soundEffect[0].Play();
                }
            }
            //Sedond Sector(26-100[MIRROR EFFECT])
            int tmp2=ballLeft;
            if (ballPos.X <= paddleStaticPos.X + 15)
            {
                if (ballPos.Y <= paddlePos.X + 99 && ballPos.Y >= paddlePos.X + 26)
                {
                    gameStartpaddleHit = true;
                    lastPaddleHitLeft = true;
                    ballLeft = tmp2 * -1;
                    soundEffect[0].Play();
                }
            }


            //Third Sector(101-125[SHARP ANGLE DEFLECT])
            if (ballPos.X <= paddlePos.X + 15)
            {
                if (ballPos.Y <= paddlePos.X + 125 && ballPos.Y >= paddlePos.X + 100)
                {
                    gameStartpaddleHit = true;
                    lastPaddleHitLeft = true;
                    ballLeft = ballLeft * -1;
                    ballUp = ballUp * -1;
                    soundEffect[0].Play();
                }
            }

如果您更喜欢pastebin:http://pastebin.com/K0PitFcQ

1 个答案:

答案 0 :(得分:0)

您正在对paddlePos X测试ballPos Y

if (ballPos.Y <= paddlePos.X + 25 && ballPos.Y >= paddlePos.X)

不应该是这个吗?

if (ballPos.Y <= paddlePos.Y + 25 && ballPos.Y >= paddlePos.Y)