Erkennen die Kollision zwischen einem bewegten Objekt und einem unbeweglichen man

Zunächst, meine Frage ist nicht wirklich spezifisch für C# oder XNA, aber meine code-Beispiele verwenden diese.

Ich bin versucht derzeit, um ein Pong-Klon und ich habe ein problem mit der Kollisionserkennung.

Jedes Objekt im Grunde hat eine bestimmte Geschwindigkeit(das ist ein Vector2), Position(Vector2, auch) und Geschwindigkeit(nur Schwimmer). Bei jedem Update () - Aufruf an das Objekt, die position wird verändert auf diese Weise:

Velocity.Normalize();
Position += Velocity * Speed;

Zuerst habe ich nur überprüft, wenn es derzeit zu einer Kollision zwischen zwei Objekten mit einem einfachen Intersects () - Aufruf aus der Rechtecke der Objekte. Ich merkte schnell, dass ich konnte nicht nur prüfen, ob das Objekt wurde derzeit Kollision mit einem anderen, sondern ob das Objekt kollidierte mit einem Objekt auf seinem Weg. Nur die überprüfung, ob zwei Objekte wurden zur Zeit der Kollision aus den ball gehen durch das Paddel, wenn die Geschwindigkeit zu hoch war.

Ich verschiedene Sachen ausprobiert um das problem zu beheben, aber keiner von Ihnen schien zu funktionieren. Ich brauche nur eine Möglichkeit um zu überprüfen, ob zwei Objekte zusammengestoßen und auf Ihre Weise, und wenn Sie es Taten, wenn es von der horizontal, vertikal oder beides(um die Kugel die Geschwindigkeit entsprechend).

Ich nicht unbedingt wollen, dass die Lösung richtig Weg, vielleicht auch nur die grundlegende Idee, wie dies umzusetzen, und das werde ich code es selber.

Vielen Dank für Ihre Zeit.

InformationsquelleAutor Jesse Emond | 2010-07-07
Schreibe einen Kommentar