Hey,
ich habe leider kein passendes Thema zu meinem Problem hier im Forum gefunden. Es geht um eine pixelgenaue Kollisionsdetektion für eine Spieleengine, die ich schreibe, um in Zukunft leicht Spiele entwickeln zu können, speziell für android.
Es soll der Kollisionspunkt von zwei Polygon arrays festgestellt werden, wenn es einen gibt.
Mein Ansatz dafür ist folgender:
java-Code #5103 public static Point getCollisionPoint(Collidable ac, Collidable bc)
Diese Methode soll überprüfen, ob und wo sich zwei Körper berühren. Später werde ich noch einfügen, dass diese komplexe Kollisionsabfrage nur gemacht wird, wenn sich die Bounding boxes der Körper schneiden. Mein Ansatz ist der, dass zwischen je 2 Koordinaten einer Figur eine Linie gezeichnet wird und der theoertische Schnittpunkt beider Linien gefunden wird. Also so:
Drawing #976
Das geschieht mithilfe einer linearen Funktion und mithilfe von Sonderfällen für senkrechte oder waagerechte Linien. Wenn der x-Wert des Schnittpunktes größer gleich A.x, kleiner gleich B.x, größer gleich D.x und kleiner gleich C.x ist, dann wird der Schnittpunkt als Kollisionspunkt betrachtet.
java-Code #5104 class Line
Drawing #977
In diesem Bild sieht man, wie es gehen sollte. Der Schnittpunkt liegt zwischen den x-Werten der Strecken AB und CD.
Was allerdings ist meiner Testumgebung passiert ist folgendes:
Kostenloser Bilder Upload Service - Gratis Bilder hochladen / uploaden ohne Anmeldung
Oft klappt es allerdings auch. Hier im Anhang ist mal die Demo, aus der ihr vielleicht einige Informationen ziehen könnt.
TIG_2.jar - Speedy Share - upload your files here
Ich bin ratlos. Was eigentlich geschehen sollte, ist dass der Würfel abprallt (elastische Kollision).
ich habe leider kein passendes Thema zu meinem Problem hier im Forum gefunden. Es geht um eine pixelgenaue Kollisionsdetektion für eine Spieleengine, die ich schreibe, um in Zukunft leicht Spiele entwickeln zu können, speziell für android.
Es soll der Kollisionspunkt von zwei Polygon arrays festgestellt werden, wenn es einen gibt.
Mein Ansatz dafür ist folgender:
java-Code #5103 public static Point getCollisionPoint(Collidable ac, Collidable bc)
Diese Methode soll überprüfen, ob und wo sich zwei Körper berühren. Später werde ich noch einfügen, dass diese komplexe Kollisionsabfrage nur gemacht wird, wenn sich die Bounding boxes der Körper schneiden. Mein Ansatz ist der, dass zwischen je 2 Koordinaten einer Figur eine Linie gezeichnet wird und der theoertische Schnittpunkt beider Linien gefunden wird. Also so:
Drawing #976
Das geschieht mithilfe einer linearen Funktion und mithilfe von Sonderfällen für senkrechte oder waagerechte Linien. Wenn der x-Wert des Schnittpunktes größer gleich A.x, kleiner gleich B.x, größer gleich D.x und kleiner gleich C.x ist, dann wird der Schnittpunkt als Kollisionspunkt betrachtet.
java-Code #5104 class Line
Drawing #977
In diesem Bild sieht man, wie es gehen sollte. Der Schnittpunkt liegt zwischen den x-Werten der Strecken AB und CD.
Was allerdings ist meiner Testumgebung passiert ist folgendes:
Kostenloser Bilder Upload Service - Gratis Bilder hochladen / uploaden ohne Anmeldung
Oft klappt es allerdings auch. Hier im Anhang ist mal die Demo, aus der ihr vielleicht einige Informationen ziehen könnt.
TIG_2.jar - Speedy Share - upload your files here
Ich bin ratlos. Was eigentlich geschehen sollte, ist dass der Würfel abprallt (elastische Kollision).
Zuletzt bearbeitet: