У меня двигающаяся кнопка и 4 статичные. Эта двигающаяся кнопка не должна проходить сквозь другие. Но в чём-то есть проблема, и она проходит
if (_rectangles.All(x => !x.IntersectsWith(button2.Bounds)) || (_lastKey != Keys.None && _lastKey != e.KeyCode))
{
switch (e.KeyCode)
{
case Keys.A:
button2.Location = new Point(button2.Location.X - 5, button2.Location.Y);
break;
case Keys.S:
if (button2.Location.Y + button2.Size.Height < this.ClientSize.Height)
button2.Location = new Point(button2.Location.X, button2.Location.Y + 5);
break;
case Keys.W:
if (button2.Location.Y + 1 > 5)
button2.Location = new Point(button2.Location.X, button2.Location.Y - 5);
break;
case Keys.D:
if (button2.Location.X + button2.Size.Width < this.ClientSize.Width)
button2.Location = new Point(button2.Location.X + 5, button2.Location.Y);
break;
}
}
else
_lastKey = e.KeyCode;
}
}
нужно добавить _lastKey = Keys.None;
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники