Я строю игру космического захватчика и использую этот метод linq, чтобы увидеть, был ли игрок поражен захватчиками:
foreach (var playerShot in playerShots)
{
if (isWeapon)
{
AliensHit = from invader2 in invaders
where invader2.Area.Contains(playerShot.Area)
select invader2;
}
}
позже у меня есть алгоритм, который удаляет выстрел и захватчик, ноэто не имеет значения, так как метод содержимого не работает.Я делаю снимок, который является растровым изображением, и он проходит через захватчик (его свойство Area изменяется правильно, я проверил с помощью отладчика, и так изменилась область захватчиков: они оба перемещаются).Затем я проверил с помощью меньшего прямоугольного выстрела, находится ли прямоугольный снимок в области захватчиков, и это сработало.Оба были удалены.
AliensHit = from invader in invaders
where invader.Area.Contains(playerShot.Location)
select invader;
Почему, когда я помещаю область, чтобы проверить, что метод не работает, я проверил отладчик в течение 3 часов и не нашел ничего плохого.(