Ich habe kürzlich mit der jMonkey-Engine angefangen, was sehr nett ist. Aber ich blieb stecken und versuchte, die relative Schwerkraft zu implementieren.
Ich möchte Planeten umkreisen lassen (nicht notwendigerweise in einer perfekt kreisförmigen Umlaufbahn, abhängig von der Geschwindigkeit). Also sollte jedes Objekt andere Objekte beeinflussen.
Was ich gerade habe:
Ausschalten der globalen Schwerkraft
%Vor%Initialisierungssphären und Hinzufügen zum Physikraum
%Vor%Ich habe bemerkt, dass es in der RigidBodyControl-Klasse die Methode setGravity gibt, aber sie bestimmt nur die Richtung. Also geht das Objekt so, bis es verschwindet.
Ich freue mich wirklich auf Antworten.
Die Schwerkraft in der Kugelphysik ist eine Richtung für alle Objekte.
Sie sollten die Schwerkraft auf 0 setzen und alle Objekte nach jedem Simulationsschritt mit folgender Formel erzwingen:
%Vor% normale Beschleunigung auf der Erde ist g == 9.8
Bei der Beschleunigung des Weltraums hängt alles von der Entfernung von Planeten oder Planeten ab.
Wenn Sie ein Spiel wie Angry Birds Space simulieren möchten, dann sollten Sie einen Artikel über Schwerkraft in diesem Spiel lesen Ссылка
Das Gravitationsgesetz sagt F = G (m1 * m2) / r^2
wobei m1
und m2
die Massen der beiden Körper sind, und r
ist die Entfernung. G
ist die Gravitationskonstante.
Newtons zweites Gesetz sagt F = m * a
, also wenn wir sie zusammensetzen, würde der Körper mit Masse m1
eine Beschleunigung von a = G * m2 / r^2
von der Anziehungskraft des Körpers mit Masse m2
erfahren.
Was Sie nun tun müssten, ist: In jedem Schritt der Simulation für jeden Körper summieren Sie die a
s für jeden anderen Körper und wenden diese Beschleunigung auf die Geschwindigkeit des Körpers an.
Wenn Sie ein stabiles System wünschen, verwenden Sie keine simulierte Physik. (Aber wenn das System genug signifikante Körper hat, weiß niemand, wie es sich verhalten soll, also spielt es keine Rolle).
Für Dinge wie das Sonnensystem würde ich den kinematischen Modus für Planeten verwenden (sie selbst bewegen) und für Schiffe, Asteroiden usw. Kräfte verwenden. (Es sei denn, Sie machen biliard im Sonnensystem)
Tags und Links java bulletphysics jmonkeyengine