Java Kollisionserkennung zwischen zwei Shape-Objekte?

Ich würde gerne wissen, der beste Weg, zu sagen, wenn ein Shape-Objekt überschneidet einer anderen Form.
Derzeit habe ich die Kollisionserkennung in meinem Spiel aussortiert solange es mit einer Form sich kreuzender ein Rechteck oder Umgekehrt. Das problem das ich habe ist, dass der intersects () - Methode der Form-Klasse kann nur ein Rechteck oder einen Punkt als parameter, nicht in einer anderen Form. Gibt es eine effiziente Möglichkeit, um zu testen, ob zwei Shape-Objekte sind überschneidungen in irgendeiner Weise?
Eine Möglichkeit, die ich versuchte, war mit einer for-Schleife zu generieren, der einen Bereich von Punkten zu testen, wenn Sie waren in die Form, und dann bauen ein array von Point-Objekten zu senden, um die andere Form zu testen, aber dies deutlich ließ meine framerate wegen all der unnötigen Vergleiche.

Ich schaute und schaute für etwas ähnliches hier, aber finde nicht wirklich etwas. Sorry im Voraus, wenn dies ist eine Wiederholung.

Ist betrachtet man nur die bounding-box der Form ausreichend, für komplexe Formen? Wenn dem so ist, dann seine einfach. Wenn nicht, dann denke ich, wird es ein wenig kompliziert...
Nein, die bounding-box wird nicht funktionieren. Es muss der tatsächliche Umfang der Form. Ich habe versucht mit der getBounds () - Methode, aber wenn Sie versuchen, um deinen Charakter zu bewegen schräg an einer Wand, die Sie erhalten blieb, obwohl der sprite ist nicht, es zu schlagen.

InformationsquelleAutor Monkeybro10 | 2013-03-28

Schreibe einen Kommentar