Bewegungsgeschwindigkeit * ZeitZwischenFrame = Unsinnig?
-
Sorry.
Mir gehts ja nicht um das Programm.
Sondern, was hinter diesem Zusammenhang steckt.
Hohe FPS => niedrige Zeit zwischen Frames
Niedrige FPS => hohe Zeit zwischen FramesDie FPS variieren doch ständig. Somit variiert auch ständig die Bewegungsgeschwindigkeit. Ist doch Schwachsinn?
-
ceplusplus schrieb:
Ist doch Schwachsinn?
Genau. Deshalb ja "aua".
-
Und was wäre dann richtig/besser?
-
Nein, kein Schwachsinn.
Sagen wir mal, du willst, dass sich x mit 100 pro Sekunde erhöht.In jedem Frame: x += 100.0 * dt
Wobei dt die letzte Frame-Zeit in Sekunden ist (z.B. 0.01 bei 100 FPS).
Die Multiplikation sorgt dafür, dass nach einer Sekunde x 100 größer ist als vorher, und zwar unabhängig davon, wie lange die Frames gebraucht haben.In der Praxis arbeitet man aber eher mit festen Schrittgrößen und einem Zeitkonto, das man "abarbeiten" muss.
timeToProcess = 0; while(!quit) { t0 = getTime(); render(); while(timeToProcess >= stepSize) { timeToProcess -= stepSize; update(); } dt = getTime() - t0; timeToProcess += dt; }
-
ceplusplus schrieb:
Und was wäre dann richtig/besser?
Natuerlich das ganze nicht an die Darstellung zu koppeln.
-
Was ist jetzt eigentlich die Frage? Warum dein Game verbuggt ist? f'`8k
Gruß, TGGC (\-/ has leading)
-
Ob Bewegungsgeschwindigkeit * ZeitZwischenFrame = Unsinnig?
-
Nein. Wurde schon gesagt. Ausserdem passt die Beschreibung nicht dazu. f'`8k
Gruß, TGGC (\-/ has leading)
-
TGGC schrieb:
Nein. Wurde schon gesagt.
Ich weiß.
TGGC schrieb:
Ausserdem passt die Beschreibung nicht dazu.
Kann leicht sein, habe auch nicht nachgedacht.
MfG
-
ceplusplus schrieb:
Kann leicht sein, habe auch nicht nachgedacht.
Ein weitverbreitetes Problem heutzutage.

Gruß, TGGC (\-/ has leading)