Я пытаюсь создать игру, в которой главный объект, герой, перемещается по карте и убивает врагов.
Этот объект представлен в виде прямоугольника с фоновым изображением.
Я нашел несколько решений для правильного импорта изображения, но ни одно из них, похоже, не подходит, все они просто повторяют изображение внутри прямоугольника.
Чтобы быть более точным, есть некоторые «скрытые» повторяющиеся изображения, и когда я перемещаю прямоугольник, он просто раскрывает их.
Image image = new Bitmap(Properties.Resources.Untitled);
TextureBrush tBrush = new TextureBrush(image);
g.FillRectangle(tBrush, X, Y, characterWidth, characterHeight);
Когда я рисую только прямоугольник и использую функцию Move
, все в порядке,
каждый раз, когда я двигаюсь, он перерисовывает себя. Но когда я импортирую фоновое изображение, все становится грязным.
Реализация функции Move
:
public void Move(int width, int height, String direction, List<Obstacles.Rectangle> rectangles)
{
int oldX = this.X;
int oldY = this.Y;
if (direction == "UP")
{
this.Y -= 10;
if (IsCollided(rectangles) || this.Y < 0)
{
this.Y = oldY;
}
}
if (direction == "DOWN")
{
this.Y += 10;
if (IsCollided(rectangles) || this.Y > height)
{
this.Y = oldY;
}
}
if (direction == "LEFT")
{
this.X -= 10;
if (IsCollided(rectangles) || this.X < 0)
{
this.X = oldX;
}
}
if (direction == "RIGHT")
{
this.X += 10;
if (IsCollided(rectangles) || this.X > width)
{
this.X = oldX;
}
}
}