Ich entwickle ein physikbasiertes Spiel mit Raumschiffen.
Ein Raumschiff besteht aus Kreisen, die durch Gelenke verbunden sind. In einigen Kreisen sind Motoren angebracht.
Motoren können sich um den Mittelpunkt des Kreises drehen und Schub erzeugen. Ich möchte in der Lage sein, das Schiff in eine Richtung zu bewegen oder um einen Punkt zu drehen, indem ich die Drehung und den Schub für jeden der Schiffsmotoren einstelle.
Wie finde ich die Rotation und den Schub, die für jeden Motor erforderlich sind, um dies zu erreichen?
mathematics
physics
SSS
quelle
quelle
Antworten:
Stellen wir uns die einfache Situation eines Schiffes mit nur einem Motor vor. Um das Schiff zu bewegen, richten wir das Triebwerk einfach von der Richtung weg, in die wir gehen möchten, und stoßen es aus. Das treibt uns in die Richtung, in die wir gehen wollen. Es ist nicht möglich, ein Schiff zu drehen, das nur aus einem Triebwerk besteht.
Skalieren wir unser Schiff auf drei Motoren, um es interessanter zu machen:
Wenn wir dieses Schiff irgendwo nach oben und links bewegen wollten, würden wir einfach alle unsere Triebwerke in die entgegengesetzte Richtung richten und feuern:
Gleiche Lösung wie das einzelne Triebwerk, das sich um die lineare Bewegung kümmert.
Aber was ist, wenn wir ein Triebwerk vermissen? Wir haben eine ungleiche Last?
Wenn Sie der gleichen Strategie folgen, dreht sich das Schiff. In vielen Situationen ist dies meistens unvermeidbar und in einigen Fällen vorzuziehen, da das Schiff für eine bessere Nutzung der verfügbaren Triebwerke ausgerichtet wird.
Eine Strategie, um dies zu mildern, wäre der Ausgleich. Teilen Sie das Schiff entlang der Achse der gewünschten Bewegung auf:
Stellen Sie dann sicher, dass die rechte und die linke Seite gleich sind. Wenn sie die Triebwerksleistung erst skalieren, wenn sie dies tun. Dies kann leicht dazu führen, dass kein Schub ausgeübt wird. Es liegt an Ihnen, zu entscheiden, ob Sie stattdessen eine Rotation verursachen oder den Spieler zwingen möchten, sein Schiff neu zu gestalten, indem Sie seine Triebwerke neu organisieren.
Wie wäre es mit Rotation?
Diese Frage beschreibt die Idee sehr gut.
Sie müssen den Schwerpunkt berechnen . Berechnen Sie dann das von jedem Triebwerk bereitgestellte Drehmoment . Zum Glück drehen sich Ihre Triebwerke, sodass Sie sie drehen können, um ein maximales Drehmoment zu erzielen. Das maximale Drehmoment kommt aus einem rechten Winkel zum Momentarm. Durch Anwenden der Summe der Drehmomente wird der Körper um den Schwerpunkt gedreht. Sie können auch einen anderen beliebigen Drehpunkt wie die Schiffsbrücke auswählen.
Wenn Sie sicherstellen möchten, dass Sie sich an Ort und Stelle drehen , können Sie den Schub der Triebwerke verringern, wodurch sich Ihr Schiff linear bewegt. Sie können dies tun, indem Sie alle Triebwerke mit positivem Drehmoment und alle mit negativem Drehmoment addieren und dann ihre absoluten Werte vergleichen. Die Gruppe mit dem größeren Absolutwert sollte verkleinert werden, um dem Absolutwert der anderen Gruppe zu entsprechen.
Möglicherweise finden Sie auch eine sehr hilfreiche Ressource in Amit Patel .
Er hat hier eine 4-teilige Serie auf konfigurierbaren Raumschiffen gemacht: Teil 1 , Teil 2 , Teil 3 , Teil 4
quelle
Ich bin das mit lokaler Suche gelöst. Es funktioniert, aber die Leistung ist fast schlecht. Vielleicht ist es besser, theoretische Mechanik zu verwenden, aber ich weiß es nicht.
quelle