用移动对象移动碰撞矩形

本文关键字:移动 对象 碰撞 | 更新日期: 2023-09-27 18:11:45

所以我对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);

用移动对象移动碰撞矩形

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

您应该初始化soccerBallBoundssoccerBallBounds = new Rectangle(0, 0, 24, 24);

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

检查矩形。