2016-06-05 10 views
1

Ich baue ein Asteroiden-ähnliches Spiel für Android. Ich lese "Android-Spiel-Programmierung mit Beispiel". Ich implementiere den Algorithmus der Kreuzungszahl. Die App fertig ist und es funktioniert, aber ich verstehe nicht, diesen Teil des Codes:Crossing-Nummer Algorithmus in 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)) 

Wo cp1.currentPoint ist die erste erste Eckpunkt des Objekts (es ist also ein Punkt), ist cp2.currentPoint des zweiten Objekts ersten Scheitelpunkt und cp2.currentPoint2 ist der zweite Punkt. Diese zwei Punkte bilden unsere Linie.

Dieser Teil verstehe ich nicht:

(cp2.currentPoint2.x - cp2.currentPoint2.x) 

Das Ergebnis davon ist immer 0, also warum ich das zu tun?

Antwort

0

Wie Sie sagten, dass es immer Null ist, brauchen Sie es nicht. Vielleicht sollten andere Werte da sein, aber es war vergessen. Also nimm es einfach raus, um deinen Code zu löschen.

+1

Oder vielleicht wurde es falsch aus dem Buch transkribiert? –

+0

Ich kopiere den Code um sicher zu sein. –

+0

Die Lösung funktioniert meistens "(cp2.currentPoint.x - cp2.currentPoint2.x)" –