Обтягивание нарисованного изображения в XNA 4.0 - PullRequest
0 голосов
/ 30 декабря 2011

Как вы видите на картинке выше, Билли, наш маленький одетый в оранжевый цвет человек, уходит с экрана влево и появляется с правой стороны.

Это то, что я хочу, однако я не могу воспроизвести этот эффект (я получил изображение с некоторыми изменениями в Paint.net).

В основном, если позиция игрока x отрицательная, она должна переноситься на другую сторону. Если x больше ширины, его следует перенести на левую сторону.

1 Ответ

1 голос
/ 30 декабря 2011

Нарисуйте его два раза, когда вам это нужно.

 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;
  }

Конечно, вы должны помнить об этом, когда вы проверяете на столкновение с игроком, вам также нужно проверить две позиции.

...