2016-06-05 2 views
1

Я создаю астероидную игру для 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, так почему я сделать это?

ответ

0

Как вы заявили, что он всегда равен нулю, вам это не нужно. Возможно, некоторые другие ценности должны были быть там, но они были забыты. Поэтому просто снимите код, чтобы очистить свой код.

+1

Возможно, это было неправильно переведено из книги? –

+0

Я копирую/вставляю код, чтобы быть уверенным. –

+0

Решение работает большую часть времени '(cp2.currentPoint.x - cp2.currentPoint2.x)' –

Смежные вопросы