kostenloser Webspace werbefrei: lima-city


Ruby - FrameRate

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. Autor dieses Themas

    saiko

    Kostenloser Webspace von saiko

    saiko hat kostenlosen Webspace.

    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.
    ~
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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:

    # 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
    Ich kann den Code im Moment leider nicht testen, aber er sollte eigentlich funktionieren.

    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
  4. Autor dieses Themas

    saiko

    Kostenloser Webspace von saiko

    saiko hat kostenlosen Webspace.

    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.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!