Lokaler Timer

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Fluppe

Betreff: Lokaler Timer

BeitragDo, Nov 01, 2007 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

ich stehe gerade irgendwie total auf dem Schlauch: ich möchte einen lokalen Timer in eine Funktion einbauen und zu diesem Zwecke auch keine globalen, sondern lokale Variablen verwenden. Allerdings wird doch der Variable im Moment der Deklarierung ein Wert zugewiesen, oder? D.h. bei jedem Aufruf der Funktion wird die Timer-Variable überschrieben.

Meine Frage: wie erzeuge ich einen lokalen Timer in einer Funktion, ohne auf globale Variablen zurückgreifen zu müssen? Kann doch nicht sein, dass man für jeden Timer (zum Beispiel ein Timer für Animationsframes) auf globale Variablen zurückgreifen muss? Sorry schon mal für die möglicherweise alberne Frage...

Fluppe. Cool

Farbfinsternis

BeitragDo, Nov 01, 2007 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Deklariere die Variable innerhalb der Funktion als global. Sie ist dann weiterhin von aussen nicht sichtbar, aber die Funktion "erinnert" sich an deren letzten Wert.

Beispiel:
Code: [AUSKLAPPEN]

Repeat
  Cls

  DrawText String(GetFPS()), 2, 2

  Flip
Until KeyHit(KEY_ESCAPE)
End

Function GetFPS()
  Global FPS_temp:Int
  Global FPS_time:Int
  Global FPS:Int
  Local time:Int = Millisecs()

  FPS_temp:+1
  If time - FPS_time > 1000
    FPS = FPS_temp
    FPS_time = time
    FPS_temp = 0
  End If

  Return FPS
End Function
 

Fluppe

BeitragDo, Nov 01, 2007 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die schnelle Antwort Smile

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group