CreateTimer mit seltsamen Verhalten

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

walski

Ehemaliger Admin

Betreff: CreateTimer mit seltsamen Verhalten

BeitragMi, Dez 01, 2004 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
CreateTimer scheint bei Frequenzen über 500 nicht mehr zu differenzieren und immer pauschal 1.000 FPS zuzulassen.
Bei Frequenzen über 1.000 hängt das ganze Programm dann einfach nurnoch, ohne das !irgendetwas! passiert. Und das bei 1.600 FPS ohne den Timer.

Beispiel:

Code: [AUSKLAPPEN]

Const screen_mode_fullscreen = 1
Const screen_mode_windowed = 2

Const screen_width = 800
Const screen_height = 600
Const screen_depth = 32
Const screen_mode = screen_mode_fullscreen

Global fps_last_time
Global fps_counter
Global fps_fps
Global fps_interval

fps_interval = 100

Local timer

timer = CreateTimer( 499 )


Graphics screen_width,screen_height,screen_depth,screen_mode
SetBuffer BackBuffer()

While Not KeyHit( 1 )

    WaitTimer( timer )

    handleFPS()
   
    Cls
   
    Text 1,1,fps_fps
   
    Flip 0
   
Wend
   



Function handleFPS()

   Local tSecs

   tSecs = MilliSecs()
   
   If tSecs > fps_last_time + fps_interval Then

      fps_fps = Int( Float( fps_counter ) * ( 1000.0 / fps_interval ) )

      fps_counter = 0

      fps_last_time = tSecs

   Else

      fps_counter = fps_counter + 1

   EndIf

End Function


Führt das mal aus und schaut auf die Frames... etwa bei 500.
Ändert die Timer-Frequenz mal auf 501 und führt es erneut aus... etwa 1.000 Confused

Und jetzt ändert die Frequenz auf 1.100... ihr müsst das Programm danach per Taskmanager beenden! Shocked

Erklärungen?

walski
buh!
 

Kekskiller

BeitragMi, Dez 01, 2004 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, also bei mir funktioniert der Timer maximal mit 60 Fps, sprich, volle
Millisekundenanzahl. Weiter drüber würde rein von Logik bie gehen ^^ ...
Mit Ausnahme von Nanosekunden und dadrunter.

Spikespine

BeitragMi, Dez 01, 2004 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
ist bei mir auch so...

aber wer braucht schon einen timer über 500 bps ???


[EDIT]
Kekskiller: Mach mal den Vollbildmodus weg...
 

walski

Ehemaliger Admin

BeitragMi, Dez 01, 2004 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked

Manchmal ist es SEHR WOHL sinnvoll schneller zu berechnen als zu zeichnen, daher machen auch Timer weit über der Bidlwiederholrate eures Monitors Sinn! Und auch Timer über 500 machen theoretisch Sinn, es gilt eben nur ein entsprechendes Problem zu finden.

Ich habe das ja nicht einfach so entdeckt, weil ich nichts zu tun hatte, mir ist es aufgefallen, als ich es einsetzen wollte.

Und außerdem: WARUM geht es nicht? Das wäre ja mal ganz interessant zu erfahren um die Timer etwas mehr zu verstehen.

walski
buh!
 

Kekskiller

BeitragDo, Dez 02, 2004 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
@Spikespine:
Eine Frechheit deinerseits, ich rede allgemein von Timern.

Jolinah

BeitragDo, Dez 02, 2004 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit dem Timer hatte ich auch schon paar mal Probleme...

Wäre es nicht sinnvoller frameunabhängig zu programmieren so das der PC mit voller Leistung rechnen kann? Seit ich das begriffen habe (ist ja eigentlich auch ganz leicht) programmiere ich fast nur noch so, zumindest Spiele.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group