Es gibt keine vordefinierte equals
Funktion für die PolygonShape
Klasse, aber es wäre nicht zu hart sein, eigene zu schreiben. Wie folgt:
boolean polygonEqual(PolygonShape a, PolygonShape b) {
int n = a.getVertexCount();
//If the two shapes have differing numbers of vertices they can't be equal
if (n != b.getVertexCount()) return false;
//Check if all the vertices are equal
Vector vA, vB;
for (int i = 0; i < n; i++) {
a.getVertex(i, vA);
b.getVertex(i, vB);
if (!a.equals(b)) return false;
}
//Now they must be equal
return true;
}
Hinweis: dies funktioniert nur, wenn die Reihenfolge der Scheitelpunkte ist ebenfalls gleich. Es kann der Fall sein, dass die gleichen Scheitelpunkte in zwei verschiedenen Polygonen liegen, aber um einen Index verschoben sind. Da Ihr Beispiel jedoch nur setAsBox
verwendet, sollte diese Funktion als Vergleich ausreichen.
Nun, das passiert 'cos 'equals' Methode wird in' PolygonShape' Klasse nicht überschrieben. Ich würde ein Problem auf dem GitHub ansprechen, wenn Sie wirklich vergleichen müssen. – Enigo
Ich werde wahrscheinlich versuchen, einen Workaround zu finden. Das könnte leichter sein – NuclearVirus