Startseite › Foren › Deutsches LiveCode-Forum › Timer zählt falsch
Schlagwörter: Timer runterzählen
- Dieses Thema hat 2 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 6 Monaten von
duiJM.
-
AutorBeiträge
-
-
Mai 30, 2021 um 19:42 Uhr #29142
Hallo zusammen,
ich versuche in ein Spiel einen Timer einzubauen, der nach jeder Sekunde um ein runter zählt, aber wo ich auch den Aufruf hinein packe (hab die alle drin gelassen), es wird entweder gar nicht, oder sehr schnell (also keine Sekunde) runter gezählt.
Ich verzweifel gerade an mir 😉Hier der Code Ausschnitt:
on Spielloop — das permanent ablaufende Spiel
downTimer — das soll den Timer aufrufen
send „downTimer“ to me in 1000 milliseconds — diese Zeile war ein Versuch— Punkte
Punktezählenif Spielläuft = true then
send Spielloop to me in 20 milliseconds — hier wird die Spielschleife immer wieder ausgeführt
–send „downTimer“ to me in 1000 milliseconds (ein weiterer Versuch)
end if
end Spielloopon downTimer — hier soll der Timer laufen und aktualisieren
subtract 1 from vTimer — vTimer ist die Zahl der Sekunden, die runter zählen sollen
put „Zeit: “ & vTimer into fld „fldTimer“
if vTimer = 0 then
Spielstoppen
— else
— send „downTimer“ to me in 1000 Milliseconds (versuch)end if
–send „downTimer“ to me in 1000 Milliseconds (Versuch)
end downTimer -
Mai 30, 2021 um 20:56 Uhr #29144
Hi duijM,
Du musst den Timer von AUSSERHALB des Spielloops aufrufen!
Sonst wird er ja alle 20 Millisekunden wieder aufgerufen
und irgendwann explodiert Dein Rechner! 😀Also in dem Handler, in dem Du den Loop aufrufst, sollte es ungefähr so aussehen:
on wasauchimmer ## ... downTimer Spielloop end wasauchimmer ############################################### on Spielloop -- das permanent ablaufende Spiel -- Punkte Punktezählen if Spielläuft = true then send "Spielloop" to me in 20 milliseconds -- hier wird die Spielschleife immer wieder ausgeführt end if end Spielloop on downTimer -- hier soll der Timer laufen und aktualisieren subtract 1 from vTimer put "Zeit: " & vTimer into fld "fldTimer" if vTimer = 0 then Spielstoppen else send "downTimer" to me in 1 secs end if end downTimerGruß
Klaus
-
Mai 30, 2021 um 22:24 Uhr #29145
Hallo Klaus,
GREAT!
Das war es. Vielen Dank.
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
