在XNA 4.0中包装绘制的图像

问题描述 投票:0回答:1

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

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

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

sprite draw xna-4.0
1个回答
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;
  }

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

© www.soinside.com 2019 - 2024. All rights reserved.