在XNA 4.0中包装绘制的图像

时间:2011-12-30 12:10:32

标签: sprite draw xna-4.0

正如你在上面的图片中看到的那样,比利,我们的小橙色穿着的男人,从屏幕左侧出现并出现在右侧。

这就是我想要发生的事情,但是,我似乎无法复制这种效果(我在Paint.net中对照片进行了一些修改)。

基本上,如果球员x位置是负数,它应该包裹到另一方。如果x大于宽度,它应该包裹到左侧。

1 个答案:

答案 0 :(得分:1)

在需要时画两次。

 void Draw(SpriteBacth batch)
 {
      batch.Draw(Player.texture, Player.Position, player.Source, player.Color);


      if (Player.X <0)
      {
           bacth.Draw(Player.texture, Player.Position + ScreenHorizontalSize, player.Source, Player.Color);
      }
      else if (Player.X + Player.Size.Width> ScreenHorizontalSize.Width)
      {
           bacth.Draw(Player.texture, Player.Position - ScreenHorizontalSize, player.Source, Player.Color);
      }
  }

  void Update()
  {
      if (Player.X < -Player.Size.Width) Player.X += ScreenHorizontalSize.Width;
      if (Player.X > ScreenHorizontalSize.Width) Player.X -= ScreenHorizontalSize.Width;
  }

当你检查与球员发生碰撞时,你必须记住这一点,你也必须检查两个位置。