Pascal ABC.NET. GRAPHABC Как определить пересечение фигур или изображений???
На экране есть два объекта (изображения).
Один управляется стрелками.
Другой представляет собой стену.
Как сделать, чтобы они не пересекались???
Если это GraphABC Objects (а проще использовать их *) - проверить пересечение можно методом Intersect или IntersectRect (если проверять прямоугольные регионы)
uses ABCObjects;
begin
var r:=RectangleABC.Create(0,0,100,100);
var c1:=CircleABC.Create(0,150,10);
var c2:=CircleABC.Create(0,90,10);
WriteLn(c1.Intersect(r)); {false}
WriteLn(c2.Intersect(r)); {true}
end.
Если это изображения - можно использовать PictureABC. Над ними тоже работает Intersect (по умолчанию белый цвет будет считаться прозрачными и не принадлежать объекту). Ну или включить математику/геометрию уровня школы средних классов и посчитать самому =)
--
* Проще ещё потому, что уже есть готовые методы последовательных перемещений (свойства dx и dy и метод Move) + поддержка анимированных изображений и масштабирование.
Проверять расстояние между ними.
if (obj1.x = obj2.x) and (obj1.y = obj2.y) then writeln('BABAH!!!!');