Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

1

13.02.2005, 17:32

Mathematisches Problem

Also ich hab ein Raumschiff. Die aktuelle Geschwindigkeit wird in einem Vektor BotSpeedVektor gespeichert, die Richtung des Raumschiffs und die Zielgeschwindigkeit (man kann den Schub ja auch regeln) sind in dem Vektor BotFrontVektor abgespeichert. Es gibt eine Erdanziehung, diese wird in dem Vektor vFallDown gespeichert.

Bisher habe ich es immer so gemacht, dass BotSpeedVektor an BotFrontVektor angenähert wird, und danach vFallDown vom Ergebnis abgezogen wird, aber das führt irgendwie zu nicht gewünschten Ergebnissen. Hat einer von euch n passenden Algo dazu?

serial chiller

Frischling

Beiträge: 61

Wohnort: Rheinbach ;-(

Beruf: berufs chiller

  • Private Nachricht senden

2

14.02.2005, 09:26

wie wärs damit, vFallDown vorher zu BotFrontVector zu addieren und dann anzunähern?

3

14.02.2005, 18:12

also ich würde sagen das kommt darauf an wie der falldown vektor gespeichert is.

bei ner negativen zahl (zb (0.0f, -8.0f, 0.0f)) müsste das mit addieren gehn
bei ner positiven: meinetwegen einfach nen int wert von 8 aus dem man dann später nen vektor macht muss man dementsprechend subtrahieren

trotzdem wären ein paar datails wie dus gemachts hast und was passiert nicht schlecht

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

4

15.02.2005, 03:34

Was ist denn die Zielgeschwindigkeit? Hat sie Richtung des Schubes? Dann kanns nicht gehen, denn selbst ein winziger Schub rechtwinklig zur momentanen Geschwindigkeit würde die Rakete um 90 Grad ablenken.

Arbeite den Schub einfach genauso ein wie die Schwerkraft. Wenn a eine beliebige Beschleunigung ist (Schwer"kraft", Schub, bei einem Flugzeug auch Auftrieb, Luftwiderstand, bremsen wenn am Boden etc), dann gilt angenähert:

v_nacher = v_vorher + t * a

t ist dabei die Zeit seitdem diese Formel das letzte mal berechnet wurde.
"Games are algorithmic entertainment."

5

15.02.2005, 18:19

lol was willste denn gleich mit raketen ^^

osram hat recht...ehrlich gesacht is das mit schub viel schwieriger als mit motor :]

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

6

25.02.2005, 17:04

Also ich habe inzwischen folgendes gemacht:

valt ist die aktuelle Geschwindigkeit. Erhöhe ich den Schub vschub bspw. auf 5 und die Richtung des Raumschiffs ist (1,0,0), so soll sich valt an (5,0,0) annähern und langsamer werden, je näher es dran ist. (Wie beim Auto: je schneller desto weniger Beschleunigung) Ich berechne das so:

valt = valt + (t * (vschub - valt) * 20%)

Durch die 20% wird eine Annäherung bewirkt: Je weiter die Geschwindigkeitsvektoren auseinander sind, desto höher die Beschleunigung, je näher sie zusammen sind desto niedriger.

Das funktioniert so weit auch sehr gut. Nur wie pflanze ich da jetzt die Gravitation ein?
Wenn ich

vGravitation = (0,-5,0)
valt = valt + (t * (vschub - valt) * 20%) + vGravitation

berechne und der Schub ist 0, dann wird der y-Wert von valt immer kleiner und bleibt irgendwann stehen, abhängig welchen wert die 20% haben. Je größer die Prozentzahl, desto kleiner wird der y-Wert. Ich will es aber unabhängig davon einstellen können... Ne Idee?

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

7

25.02.2005, 20:50

Deine Formel ist ja grausam :krank: .
Die hat mit Physik nicht viel gemeinsam.

Wenn Du die Physik ignorieren willst, kannst Du vGravitation ja zu vSchub dazuzählen (bzw je nach Vorzeichen abziehen).
Wenn Du Physik nutzen willst, hast Du (schon) Kraft, Beschleuningung, Newton, Reibung in der Schule gehabt?
"Games are algorithmic entertainment."

Werbeanzeige