Всем привет. В общем загружаю карту/уровень:
private void Form1_Paint(object sender, PaintEventArgs e)
{
var lines = File.ReadAllLines(@"C:\Users\MAKSIM\source\repos\LoadLevel\WindowsFormsApp5\Level\level1.txt");
width = lines[0].Length;
height = lines.Length;
for (int j = 0; j < height; j++)
{
for (int i = 0; i < width; i++)
{
switch (lines[j][i])
{
case 'x':
g.DrawImage(image1, i * 32, j * 32, 32, 32);
coordBoll[i, j] = 1;
break;
case 'b':
g.DrawImage(image2, i * 32, j * 32, 32, 32);
coordBoll[i, j] = 2;
break;
case ' ':
g.DrawImage(image3, i * 32, j * 32, 32, 32);
coordBoll[i, j] = 0;
break;
case 'p':
g.DrawImage(image4, i * 32, j * 32, 32, 32);
coordBoll[i, j] = 3;
break;
case 's':
g.DrawImage(image5, i * 32, j * 32, 32, 32); posSX = i; posSY = j;
coordBoll[i, j] = 4;
break;
}
}
}
}
Далее, пытаюсь двигать bitmap. Сам игрок успешно двигается (image5). При столкновении с (image2), необходимо сдвинуть image2 влево/вправо/вверх/вниз - в зависимости от нажатых кнопок. Условие столкновения проверяю так:
case Keys.Left:
image5 = new Bitmap(@"C:\Users\MAKSIM\source\repos\LoadLevel\WindowsFormsApp5\Image\left.png");
g.DrawImage(image3, posSX * 32, posSY * 32);
g.DrawImage(image5, posSX * 32 - 32, posSY * 32);
posSX -= 1;
if (coordBoll[posSX, posSY] == 2)
{
for (int j = 0; j < height; j++)
{
for (int i = 0; i < width; i++)
{
g.DrawImage(image2, posSX * 32 - 32, posSY * 32);
}
}
}
g.DrawImage(image2, posSX * 32 - 32, posSY * 32);
break;
Но каждый раз, когда нажимаешь кнопку- рисуется еще один image2. Как это исправить??? Не прошу переписывать весь код, если есть какие-нибудь методические указания с удовольствием почитаю или простые примеры, где можно двигать один объект к другому и чтобы они вместе дальше двигались. СПАСИБО