Я создаю астероидную игру для Android. Я читаю «программирование игр для Android» на примере ». Я реализую алгоритм числа пересечений. Приложение закончено, и она работает, но я не понимаю эту часть кода:Алгоритм перекрестных чисел в android
if (((cp2.currentPoint.y > cp1.currentPoint.y) !=
(cp2.currentPoint2.y > cp1.currentPoint.y)) &&
(cp1.currentPoint.x < (cp2.currentPoint2.x - cp2.currentPoint2.x) *
(cp1.currentPoint.y - cp2.currentPoint.y)/(cp2.currentPoint2.y - cp2.currentPoint.y) + cp2.currentPoint.x))
Где cp1.currentPoint
это первая вершина первого объекта (так что является точкой), cp2.currentPoint
является первой вершиной второго объекта и cp2.currentPoint2
- второй пункт. Эти две точки составляют нашу линию.
Эта часть я не понимаю:
(cp2.currentPoint2.x - cp2.currentPoint2.x)
В результате этого всегда 0, так почему я сделать это?
Возможно, это было неправильно переведено из книги? –
Я копирую/вставляю код, чтобы быть уверенным. –
Решение работает большую часть времени '(cp2.currentPoint.x - cp2.currentPoint2.x)' –