2009-05-28 8 views
0

Ich habe einen Ball in einem Würfel bewegen, und ich erkenne, wenn es außerhalb des Würfels (mit einer Begrenzungssphäre und einer Bounding-Box) geht. Jetzt möchte ich feststellen, von welcher Seite der Ball erlischt. Dann könnte ich den Ball in die richtige Richtung umlenken. Wie kann ich das mit der "Welt" -Matrix des Balls machen?XNA-Kollisionserkennung

Soll ich selbst die Koordinaten des Balls im Auge behalten oder sollte ich sie aus der Weltmatrix ableiten?

Antwort

2

Ich würde mit den Kollisionen neu beginnen. Sie haben sechs Ebenen (jeweils ein [Punkt, normaler Einheitsvektor] -Paar) und eine Kugel (ein [Punkt, Radius] -Paar).

Den Punkt gegen jede Ebene prüfen. Subtrahieren Sie dazu den Einheitsvektor, der um den Radius der Kugel skaliert ist, von der Ebene aus. (Punkt - = PlaneUnitVector * Radius)

Jetzt können Sie mit etwas Vektormathematik sehen, auf welcher Seite des Flugzeugs es steht.

Sie verwenden dann den Einheitsvektor der Ebene für die Sprungberechnung.

Das nächste Problem, mit dem Sie konfrontiert werden, ist der Fall, in dem Sie mehr als ein Flugzeug gleichzeitig durchqueren.