2010-12-10 3 views
2

Ich versuche ein Panzerspiel in java in der Ader von Scorched Earth oder Pocket Tanks zu machen, in dem der Benutzer den Winkel und die Geschwindigkeit des Projektils definiert. Ich habe über das Internet nach einer Möglichkeit gesucht, die Windgeschwindigkeit in unser Projektilsystem zu implementieren. Wie fügst du der Projektilbewegung Windgeschwindigkeit hinzu?Implementieren Windgeschwindigkeit in unserer Projektilbewegung?

Mein Programm berechnet X-Beschleunigung und Y-Beschleunigung der Geschwindigkeit, sowie unter Berücksichtigung der maximalen Höhe erreicht, die Gesamtzeit bis zum Erreichen des Endpunkts und der Winkel des Projektils gestartet.

Antwort

3

Wie erhöhen Sie die Windgeschwindigkeit zur Projektilbewegung?

Verwenden Sie eine drag force = A * | Δ v | * Δ v * (Fläche) + B * Δ v * Fläche, wobei Δ v = (Windgeschwindigkeit) - (Projektilgeschwindigkeit), und fügen Sie es den anderen Kräften in Ihrer Simulation hinzu. (und dann das Newtonsche Gesetz verwenden (Σ F = ma), um die Beschleunigung zu berechnen)

Beachten Sie, dass die Oberfläche eine effektive Fläche ist, die dem Wind ausgesetzt ist. Wenn Ihr Projektil scheibenförmig ist, wird beispielsweise eine sehr hohe Widerstandskraft auftreten, wenn der Wind an der Vorderseite der Scheibe weht, während es eine geringe Widerstandskraft gibt, wenn der Wind über die Scheibe weht. Es ist auch zu beachten, dass dies kein Widerstandsmoment beinhaltet (Kräfte, die an verschiedenen Punkten des Projektils aufgebracht werden, was ein von Null verschiedenes Nettodrehmoment und somit eine Änderung des Drehimpulses des Projektils verursacht), z. auf einer Windmühle oder einem fallenden Ahornsamen. Das ist wahrscheinlich viel schwieriger zu modellieren als die Kraft zu ziehen.

+0

Für Ihr Spiel würde ich etwas wie (Windgeschwindigkeit)^2 * (Oberfläche) * (Projektil Gesicht Faktor) verwenden, wo "Projektil Gesicht Faktor" ist ein Wert in der Nähe von .3 oder so. Eine Ihrer Entscheidungen wird sein, was ich als "Projektil-Gesichtsfaktor" bezeichnen werde. Dieser Wert sollte kleiner als 1 sein, weil dein Spiel wahrscheinlich keine Platten schießt. – DwB

+0

Vielen Dank! – user525479

2

Um es einfach zu halten Wie wäre es, horizontale Geschwindigkeit hinzuzufügen oder zu subtrahieren, basierend auf der Richtung, aus der der Wind kommt, verglichen mit der Richtung, in die das Projektil fährt. Wenn es sich um einen Rückenwind handelt, addiert es eine gewisse Geschwindigkeit über die Zeit, bis es die maximale Geschwindigkeit erreicht, die der Rückenwind zum Projektil selbst beitragen kann, und das gleiche gilt fast für den Gegenwind, außer bei a Bei bestimmten Winkeln mit bestimmten horizontalen Geschwindig- keiten des Projektils kann ein Gegenwind mit ausreichend hoher Geschwindigkeit die horizontale Geschwindigkeit umkehren.

Je länger das Projektil in der Luft ist, desto mehr Zeit muss der Wind arbeiten.

2

Oder anstatt eine Widerstandskraft zu verwenden, können Sie einfach eine reguläre Kraft implementieren. Wenn Ihre Objekte alle die gleiche Größe und Form (Querschnittsform) haben, wählen Sie einfach ein F und wenden Sie diese Kraft auf Ihre Geschwindigkeitsberechnungen an.

Verwandte Themen