1 голос 679 просмотров 11.11.2019 / 10:58
GOAR
Столкновение двух обьектов (Pascal)вопрос: как правильно составить столкновение двух обьектов (2D).? есть какая процедура? или же столкновение предавать за щет координат (х,у,х1,у1 коорд. 2х обьектов)? если кто чет знает, подскажите. Зарание спасибо. Буду благодарен за любую инфу.)
Изм. aNNiMON
от 11.11.2019 / 17:48
Ответы
1 голос # 11.11.2019 / 13:18
SuperSystem
1.если два объекта круги:x1, y1 - координаты 1 x2, y2 - координаты 2 r1 - радиус 1 r2 - радиус 2 if sqrt(sqr(x1 + x2) + sqr(y1 + y2)) < (r1 + r2) then... 2.если прямоугольные: x1, y1 - координаты 1 x2, y2 - координаты 2 w1, h1 - ширина и высота 1; w2, h2 - ширина и высота 2; s1 - скорость 1 s2 - скорость 2 if ((x1 + w1) > x2) and (x1 < x2) then begin x1 := x1 - s1; x2 := x2 + s2; end; if ((x2 + w2) > x1) and (x2 < x1) then begin x1 := x1 + s1; x2 := x2 - s2; end; if ((y1 + h1) > y2) and (y1 < y2) then begin y1 := y1 - s1; y2 := y2 + s2; end; if ((y2 + h2) > y1) and (y2 < y1) then begin y1 := y1 + s1; y2 := y2 - s2; end;
11.11.2019 / 14:51
GOAR
спасибо, попробую )
0 голосов
11.11.2019 / 18:00
GOAR
пример?
11.11.2019 / 18:56
RblSb
https://annimon.com/code/5180
0 голосов https://developer.mozilla.org/..._collision_detection Или укороченный вариант (для прямоугольников):
Вместо передачи объектов/структур параметрами функции (не знаю что именно для этого в Pascal) передача x, y, w, h обоих фигур вполне подойдет. 0 голосов Так же есть и другие алгоритмы определения столкновения, сейчас алгоритмы очень легко находится на вкус и цвет. Полезно будет поискать исходники на GitHub
11.11.2019 / 14:53
GOAR
cnacuбо )
Всего: 4
|
Реклама |