Ruby - FrameRate
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
befehl
bild
code
dank
definieren
fehler
festlegen
helfen
jemand
limit
logik
machen
messen
methode
not
programm
reihe
sekunde
testen
weg
-
Hallo,
Ich würde gerne in meinem OpenGL-Programm, welches in Ruby geschrieben ist, eine Maximalgröße an FPS festlegen.
D.h. eine Methode, welche so lange wartet, bis der nächste Frame an die Reihe kommen muss.
Ich weiß nicht wie ich die Zeit, die das Programm für den Frame gebraucht hat, messen kann.
Weiß jemand, ob es dafür einen Befehl gibt?
Wär toll, wenn mir jemand weiterhelfen könnte.
Gruß Saiko.
~
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo mal wieder!
Da gibt es mehrere Wege. Am besten rufst du jeden Frame den sleep-Befehl auf.
Wie lange gewartet werden soll, rechnest du am besten so aus:
Ich kann den Code im Moment leider nicht testen, aber er sollte eigentlich funktionieren.# Das hier weiter oben definieren limit = 60.0 # Auf 60 Bilder pro Sekunde beschränken remaining_time = 0.0 start_time = 0.0 # In die Hauptschleife remaining_time = 1.0 / limit - (Time.now - start_time) sleep(remaining_time) if remaining_time > 0.0 start_time = Time.now
Du kannst mich auch gerne über ICQ kontaktieren, falls du mehr Fragen haben solltest.
Grüße
Beitrag zuletzt geändert: 25.1.2010 19:13:09 von wollnashorn -
Hey! Danke erst mal.
Mit Time macht man das also, soso.
Habe deinen Code von der Logik verstanden, aber hat anfangs nicht funktioniert.
Doch ich hab den Fehler danke der wunderschönen Variable $! gefunden!
Ich denk zwar, dass du das auch weißt, aber der Thread dient ja nicht nur, mir zu helfen, sondern andere Rubyliebhaber können sich an dem Code sicher auch bereichern, desswegen gib ich mal die den Fehler bekannt.
# Das hier weiter oben definieren limit = 60.0 # Auf 60 Bilder pro Sekunde beschränken remaining_time = 0.0 start_time = Time.now # In die Hauptschleife remaining_time = 1.0 / limit - (Time.now - start_time) sleep(remaining_time) if remaining_time > 0.0 start_time = Time.now
Großen Dank an Wollnashorn, hat mir sehr geholfen.
Gruß Saiko.
~
Ist ein Saiko in Not hilft Wollnashorn. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage