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

1

28.08.2013, 14:23

Spielephysik - Flugzeug Basics

Hallo,

ich versuche gerade ein einfaches Flugzeug Spiel zu programmieren mithilfe von Lua-Script. Zzt programmiere ich die einfache Physik wie Beschleunigung, Geschwindigkeit usw. Ich schaffe es schon das Flugzeug nach vorne zu beschleunigen, abzubremsen und in Y Richtung auf/absteigen zu lassen. Probleme habe ich aber beim gleichmäßigen schub. Das Flugzeug beschleunigt immer schneller bis es den maximal wert erreicht hat.

Ich berechne zzt so die Geschwindigkeit:

v = 0.05*(v+(a*t))
v = Geschwindigkeit; a = Beschleunigung; t = Zeit (Zeit+0.01/2)

Die Position in Richtung X :
X = x+(v*cos(B)*0.01)

Bei der Bremsung verringere ich die Beschleunigung in 0.01 schritten bis maximal 0.

Da ich mit der Zeit rechne ist es klar das die Geschwindigkeit immer erhöht wird. Wie kann ich das Problem umgehen? Das Flugzeug soll den Schub halten und nicht weiter erhöhen.

Grüße
Knopfler1

FreezingEngine

Treue Seele

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

2

28.08.2013, 14:55

Versuch doch zusätzlich zu deinem Maximalwert noch ein Integer etc. zu nehmen der
den momentanen Maximalwert hat und der veränderbar ist.
D.h. wenn man beschleunigt erhöhst du den momentanen Maximalwert auf 40% u.s.w.

Hoffe man kann im groben verstehen was ich meine :D

MfG
Marcel
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

3

28.08.2013, 23:25

Quellcode

1
2
3
if(v > max_v){
    v = max_v;
}

Werbeanzeige