Определить факт столкновения двух прямоугольников - C#
Формулировка задачи:
Всем привет!
Стоит такая задача:
Есть класс Unit, в котором есть метод, определяющий сталкновение двух юнитов.
В коде это выглядит примерно так:
юнит - игровой объект, в моём случае, имеющий прямоугольное основание.
Позиция и размеры известны, и выглядят как векторы для трёхмерного пространства, заданные тремя значениями (x,y,z).
Вышеуказанный метод должен проверять столкновение текущего юнита с тем юнитом, который будет передан в качестве параметра.
Если столкновение по координатам x или z в горизонтальной плоскости произошло (y не учитываем - это высота объекта), то метод возвращает true.
Иначе конечно же false, столкновения ведь нет.
Заранее большое спасибо!
public class Unit
{
private Vector Position = new Vector("значение известно");
private Vector Size = new Vector("значение известно");
...
public virtual bool HasIntersection(Unit another)
{
return false;
}
...
}Решение задачи: «Определить факт столкновения двух прямоугольников»
textual
Листинг программы
public Rectangle getBounds(Unit target)
{
int size_x = target.Size.x - target.Position.x;
int size_z = target.Size.z - target.Position.z;
return Rectangle(target.Position.x,target.Position.z,size_x,size_z);
}