Определить факт столкновения двух прямоугольников - 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д