将碰撞矩形移动到移动的对象

时间:2014-07-07 21:45:41

标签: c# xna

所以我对XNA和C#都很陌生,但我遇到了一个问题。 我只是制作了这个非常基本的“足球比赛”,并且我发生了一个碰撞事件,当球员进入球时,球会在球员移动时留在球员面前而不是。

但是当我遇到这个矩形时,球会移动一点点,但是矩形会保持原样并且不会跟随球...

这就是我所拥有的......

Vector2 soccerBallPosition = new Vector2(0,0);

Update()

soccerBallBounds = new Rectangle(588, 338, 24, 24);

if (blueTeamCenter.blueTeamCenterBounds.Intersects(soccerBallBounds))
        {
            soccerBallPosition = new Vector2(blueTeamCenter.BTCmDirection.X + 32, blueTeamCenter.BTCmDirection.Y);
        }


Draw()

spriteBatch.Draw(soccerBall, soccerBallBounds, null, Color.White, 0, soccerBallPosition, SpriteEffects.None, 0);

1 个答案:

答案 0 :(得分:0)

可能是片段不完整但我无法确定soccerBallBounds移动到新位置的位置。

Yous应将soccerBallBounds初始化为 soccerBallBounds = new Rectangle(0, 0, 24, 24);

在检查碰撞之前调用 soccerBallBounds.Offset((int)soccerBallPosition.x,(int)soccerBallPosition.y )。这样,您的soccerBallBounds将始终使用最新的球位置进行更新。

查看Rectangle.Offset了解详情。