Самый простой/быстрый способ - это, вероятно, использовать форму и использовать moveTo()
с координатами первого объекта, а затем lineTo()
с координатами второго объекта. И всякий раз, когда объекты перемещаются, вы очищаете это и перерисовываете линию. Производительность мудрый Я не могу сказать, если это лучший способ, но если это не слишком много строк и рабочего стола, я бы не стал беспокоиться об этом, тогда вам должно быть хорошо.
Другим вариантом является использование растрового изображения, которое содержит линию и масштаб + поворот на правильную длину/угол, это, вероятно, более удобно, если вы хотите, чтобы ваша линия была «фантазией» каким-либо образом, и она быть слишком сложным для рисования с помощью формы.
Оба подхода кажутся мне полезными, но я думаю, что я не буду перерисовывать линию, потому что ее можно использовать на мобильных устройствах. Вопрос, связанный с первым способом, есть ли способ проверить, сталкивается ли линия между двумя точками с третьим объектом? – Cod1ngFree
уверен, метод 1) (возможно) наилучшим образом выполненный способ: измерить расстояние от obj3 до строки: http://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line и если оно ниже определенного порога (ширина/высота obj3), тогда вам нужно проверить, находится ли оно между объектами obj1 и obj2, если это так, то оно пересекает. ** или ** Метод 2) (немного более точно) Вычислите границы obj3 и используйте проверку строки для каждой стороны этого прямоугольника: http://en.wikipedia.org/wiki/Line-line_intersection, дополнительно вы 'd нужно проверить, находится ли одна из пересекающихся точек между obj1 + 2 – olsn
или методом 3) Самый худший, но простой и пиксельный метод (работает только с растровыми изображениями и ** не ** с фигурами). Вы размещаете линию, затем выполните проверку столбцов (https://github.com/olsn/Collision-Detection-for-EaselJS), а затем выполните свои действия, если они столкнутся. – olsn