【问题标题】:Move collision rectangle with a moving object移动与移动对象的碰撞矩形
【发布时间】:2014-07-08 18:16:05
【问题描述】:

所以总的来说,我对 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);

【问题讨论】:

    标签: c# xna


    【解决方案1】:

    可能是 sn-p 不完整,但我无法确定 FootballBallBounds 移动到新位置的位置。

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

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

    查看Rectangle.Offset了解更多信息。

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 2014-12-13
      • 1970-01-01
      • 2015-07-19
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多