Procedure Timer()
Shared sekunde.w ; <- müßte auch mit Define gehen
Global timer.w
If sekunde < Second(Date()) And timer > 0 ; "Sekunde kleiner als Datums-Sekunden-Wert?
sekunde = Second(Date())
timer -1 ; Dann zieh was von "Timer" ab
ElseIf sekunde = 59 And Second(Date()) = 0 And timer > 0 ; oder der Wert 59 stand drin und geht jetzt auf 0
sekunde = Second(Date())
timer-1 ; dann zieh auch was ab
EndIf
EndProcedure
; innerhalb vom Haupt-Code folgender Aufruf:
Timer() ; an Anfang oder Ende
If Timer= 0
Timer = 50 ; Wert in Sekunden
; Und hier natürlich noch Andere Variablen die Du ändern möchtest
endif
If Timer > 0
Timer -1
endif
Ich persönlich finde das es für die meisten Spiele ausreicht, und das es recht kurz und übersichtlich ist.
MfG Blue
Wer Dir Steine in den Weg legt, pflastert den vielleicht.
Ja okay, war nich´ so gut...
haste Recht, sollte mir mehr angewöhnen erst genauer zu gucken was Andere so schreiben. Ist sogar viel kürze und einfacher.
Also @X360 vergiss mein Posting!!!
Werde selbst demnächst Timer mit ElapsedMilliseconds machen.
Wer Dir Steine in den Weg legt, pflastert den vielleicht.
Naja, deine Methode is halt übersichtlicher, aber man muss halt erst immer ne Menge rumkopieren wenn mans nich neu schreiben will und insbesondere bei kleinen Progs is ElapsedMilliseconds() die einfachere Wahl...
Warscheinlich hab ich den Time Code falsch eingesetzt oder ?
Weil bei mir hängt sich das SPiel immer auf.
Die Spielfigur wird geladen aber mehr nicht.
Danach kommt keine Rückmeldung
Naja, du kannst nicht einfach meine Schleife reinkopieren und hoffen es Funktioniert^^
Du musst den Code an deins anpassen...
Vor allem verwendest du die gleiche Variable so wies aussieht für mehrer Dinge (Die Zeit-Variable)...
Also machs am besten so:
Repeat
Delay(100)
If Zeit+30000 < ElapsedMilliseconds() ; Nach 30 Sekunden SOLLTE das Spiel dann vorbei sein.
MessageRequester("Fertig!","30 sek um...")
End
EndIf
ForEver
Also wird fortwährend dieser Loop ausgeführt und 100 ms gewartet.
Warum in so einer Schleife? Müßte doch auch so gehen druch das "If"-Abfrägelchen
//edit:
Du solltest auch noch irgendwas machen damit der MessageRequester: "Du hast jetzt 30 Sekunden um was zu machen" nur einmal erzeugt wird.
Zuletzt geändert von BlueHoschi am 12.05.2008 12:06, insgesamt 2-mal geändert.
Wer Dir Steine in den Weg legt, pflastert den vielleicht.