Ich habe ein Breakout-Spiel, in dem ich irgendwann die Kollision zwischen Ball und Paddel mit so etwas erkenne:
// Ball class
rectangle.Intersects(paddle.Rectangle);
Gibt es eine Möglichkeit, die genauen Koordinaten der Kollision oder Einzelheiten dazu mit dem Strom zu ermitteln XNA API
?
Ich dachte daran, einige grundlegende Berechnungen durchzuführen, beispielsweise den Vergleich der genauen Koordinaten jedes Objekts zum Zeitpunkt der Kollision. Es würde ungefähr so aussehen:
// Ball class
if((rectangle.X - paddle.Rectangle.X) < (paddle.Rectangle.Width / 2))
// Collision happened on the left side
else
// Collision happened on the right side
Aber ich bin mir nicht sicher, ob dies der richtige Weg ist.
Habt ihr Tipps zu einem Motor, den ich verwenden muss, um das zu erreichen? Oder sogar gute Codierungspraktiken mit dieser Methode?
quelle
get the rectangle where the two overlap
Funktionalität auf dem verfügbarXNA API
oder muss ich einige zusätzliche Dinge herunterladen, wie zPlatformer Starter Kit
.Rectangle Rectangle.Intersects(...)
.rectangle.X
oderrectangle.Y
oder was auch immer Sie zugreifen möchten.Update: Wenn Sie MonoGame verwenden, gibt es ab Version 3.0 Beta
Rectangle Rectangle.Intersect(rectangle, rectangle)
nicht mehr. Sie können stattdessen den folgenden Code aus dem XNA Platformer-Kit verwenden.Sie können das XNA Platformer Starter Kit ( portiert auf Windows 7 ) herunterladen . Es wird mit einer Hilfserweiterungsmethode geliefert, die ein Rechteck zurückgibt, das den Schnittpunkt zweier Rechtecke beschreibt:
quelle
ssb
, aber vielen Dank dafür. Ich werde auf jeden Fall in diesen Hafen einsteigen! Danke vielmals!