所以我对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);
答案 0 :(得分:0)
可能是片段不完整但我无法确定soccerBallBounds移动到新位置的位置。
Yous应将soccerBallBounds
初始化为
soccerBallBounds = new Rectangle(0, 0, 24, 24);
在检查碰撞之前调用
soccerBallBounds.Offset((int)soccerBallPosition.x,(int)soccerBallPosition.y )
。这样,您的soccerBallBounds
将始终使用最新的球位置进行更新。
查看Rectangle.Offset了解详情。