Wie würden Sie mit dem Box2D Physik-Engine auf den Gleisen eine Draufsicht auf einen Zug halten?

StackOverflow https://stackoverflow.com/questions/616375

  •  03-07-2019
  •  | 
  •  

Frage

Ich denke, es würde Spaß machen, nach einer Spur eine Draufsicht auf einen Zug zu modellieren, durchqueren Schalter und so weiter, eine Physik-Bibliothek wie Box2D verwenden. Welche Gelenke und Motoren brauche ich, um diese Arbeit zu machen?

Ich bin gespannt, wie die Kräfte zur Umsetzung benötigt, um das Auto eine Spline-Spur folgen zu, so dass es in anderen Waggons, Fußgänger stoßen können, DeLoreans usw. Nur zu sagen, „das Auto ist jetzt bei Spline (t)“ für jedes Mal Schritt würde zu große Kräfte in der Physik-Engine erstellen. Wenn ich richtig verstehe, haben Sie das Auto auf die Strecke mit einer Kraft zu halten, beschränken ihren Winkel mit der Spur eines anderen Richtung parallel zu neigen dazu, mit (oder kleben Sie die Vorder- und Rückseite des Autos auf die Strecke mit zwei Kräften), und erstellen eine andere Kraft, um den Zug vorwärts zu treiben. Ich suche nach einigen Details, wie diese Dinge zu erreichen.

War es hilfreich?

Lösung

Ich glaube, es wäre ohne „echte“ Physik einfacher sein, wie die Kugelbewegung von Spielen wie Luxor oder Tumble Bugs. Bedeutung: lassen Sie den Zug einer Spline folgen, die von den Spuren definiert wird

.

Mit phyiscs ist wahrscheinlich übertrieben ein Zug, um eine Spur zu folgen und auf alle Arten von unerwünschten Nebenwirkungen, einschließlich Ruckeln, Zuge Entgleisung, Zug stecken zu bleiben an Kreuzungen führen könnte, etc.

Sie können immer noch die einzelnen Wagen zusammen Gelenke mit Physic verbinden, jedoch. So stellen Sie sicher, dass nur die Lokomotive Beschleunigungskräfte erhält, folgt der Rest des Zuges gerade oder geschoben wird, bleibt aber auf dem Spline.

Andere Tipps

Warum sind Sie sich Sorgen um sie zu halten „auf den Spuren“? Wo geht es hin? Gravity sollte es halten, Objektschnitt sollte es halten, und so die einzigen Richtungen müssen Sie sind vorwärts und rückwärts kümmern. Das ist, wo ein Motor kommt, und du bist fertig. Der Rest ist Dekorationen.

Als Antwort von Problem zu bearbeiten:

Seitengitter. Und hat den Zug lang genug / steif genug, um im Vergleich zu seiner Breite, die Sie Kreuzungen navigieren können (damit sie näher an rechten Winkeln die Kreuzungsprobleme zu minimieren.

Eine Top-Down-Ansicht (das heißt den Zug vom Himmel zu sehen) erfordert nicht wirklich ein 2D-Physik-Engine - wenn ich Sie richtig verstehe. In der Tat scheint es, wie es nicht wirklich mit dem Problem helfen würde (wenn Sie eine Zug-Simulation wollen), aber dann vielleicht Sie will es nur zum Spaß ausprobieren. :)

Doch was so etwas wie eine Schiebverbindung auf den Zug setzen und die Autos, und einen Motor auf der Lokomotive. Der Schieber Joint könnte einige spezielle Implementierung benötigen; Sie wollen wahrscheinlich den Zug entlang einer Spline und kein Segment von geraden Linien laufen, nicht wahr?

Eine Art Kugelgelenk würde die Autos miteinander verbinden.

Die Implementierung ist nicht so toughand ich in der Lage war, etwas in ein paar Stunden bis zum Prototyp, der die grundlegende Arbeit leistet. Es wird viel Arbeit erfordern, um es reibungslos laufen, aber es ist im Grunde nur „Seitengitter.“

Als Top-down Sie natürlich zuerst die Schwerkraft in Box2D ausschalten muss. Zweitens bauen einen Zug. Treat Zugräder wie Autoräder und es wird plötzlich viel einfacher bekommen. Für Titel haben Sie ein paar Möglichkeiten:

  • Erstellen Sie Ihr eigenes Spiel-Objekt (nicht in der Box2D Welt), die eine einfache Linie ist der Zug dann „folgen“ (Sie Motoren an Eisenbahnrädern zu „lenken“ in Richtung der Linie verwenden können). Dann überlagert nur die Zeile mit einigen schönen breiten „Rail“ Grafiken und Sie haben ein gut vorgetäuscht System. Lassen Sie die Räder deaktivieren, wenn es zu weit von der Linie und presto abkommt, haben Sie eine Entgleisung.

  • Erstellen tatsächliche physische Schienen - Außenschienen (wie Seitengitter), dass die Züge „Räder“ werden stoßen. Sie werden sanfte Kurven in diesem Fall haben müssen, was sehr schwierig sein könnte, die begrenzten Ressourcen gegeben Sie (simuliert eine schöne langsame Kurve aus Kisten in Box2D ist rau auf dem Prozessor) haben

Dann lassen Sie einfach den Zug gehen!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top