Timer-Problem
Übersicht

globecrashBetreff: Timer-Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo
ich möchte nen timer machen, dh. dass man 30 sekunden für das spiel hat .das hab ich auch gemacht, es funktioniert aber nicht so wie es sollte. Code: [AUSKLAPPEN] timer = Createtimer(30) if timer = end then print "game over" mit welchem befehl sagt man-> wenn timer fertig dann soll er game over schreiben??? vielen dank im vorraus mfg Fu |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
so zum Beispiel:
Code: [AUSKLAPPEN] start=MilliSecs() Repeat ... If MilliSecs() > start + 30000 Then ... ... Forever CreateTimer ist hier nicht zu empfehlen. Man braucht den mehr für periodisch auszuführende Befehle oder FPS-Begrenzung. MfG |
||
![]() |
Hip Teen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ähm, der timer funktioniert anders. Ein timer sendet in regelmäßigen abständen x mal pro sekunde ein Signal. Hier ist x 30Code: [AUSKLAPPEN] timer=creattimer(30) Dann musst du an einer Stelle im Code, natürlich in einer Schleife, den Befehl Waittimer mit dem erstellten timer setzenCode: [AUSKLAPPEN] waittimer(timer) . Damit kannst du z.B. dein Spiel so abbremsen, damit dein Spiel auch in 10 Jahren ohne Probleme läuft. Was du erreichen möchtest machst du Folgerndermaßen. Du benutzt Millisecs()! Am Anfang fügt du die ZieleCode: [AUSKLAPPEN] Anfangszeit=Millisecs() . Dann musst du folgendermaßen überpüfen, ob schon 30 Sekunden vorbei sind
Code: [AUSKLAPPEN] If Anfangszeit+30000 < Millisecs() Then gameover
Ich hoffe das war jetzt nicht zu schlecht formuliert ![]() Edit: Verdammt, zu langsam ![]() ![]() Edit²: was einem nicht so alles in der Eile passiert ![]() |
||
- Zuletzt bearbeitet von Hip Teen am Sa, Feb 21, 2004 23:39, insgesamt einmal bearbeitet
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
nicht nur zu langsam, auch mit Fehlern!
Überprüf' deinen letzten Codeschnipsel!!!!! MfG |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi , hab da noch was gefunden
Code: [AUSKLAPPEN] Graphics 800,600,16,2
einfach mal probieren !!
SetBuffer BackBuffer() Endzeit = MilliSecs() + (90 *1000); sec *1000 = millisecs Repeat restzeit = Endzeit - MilliSecs() If restzeit < 0 Then End Text 100, 20, restzeit + " millisekunden Text 100,100,Zeitausgabe$(restzeit) Flip:Cls Until KeyHit(1) Function Zeitausgabe$(Zeit_gesamt) ; Global .... nichts ;restzeit = Endzeit - MilliSecs() sekunden% = Zeit_gesamt /1000 millisekunden% = Zeit_gesamt -sekunden*1000 ; immer 3 stellen minuten% = sekunden/60 sekunden = sekunden -minuten *60 Zeitstring$ = millisekunden While Len(Zeitstring$) < 3 Zeitstring$= "0"+Zeitstring$ Wend Zeitstring$ = ","+Zeitstring$ ; ,123 Zeitstring$ = sekunden +Zeitstring$ While Len(Zeitstring$) < 6 Zeitstring$= "0"+Zeitstring$ ; Wend ; 05,123 Zeitstring$ = ":" +Zeitstring$; : 05,123 Zeitstring$ = minuten +Zeitstring$ While Len(Zeitstring$) < 9 Zeitstring$= "0"+Zeitstring$ ; Wend Zeitstring$= Left(Zeitstring$,8) ;Letzte 0 weg Return Zeitstring$ End Function |
||
[BB2D | BB3D | BB+]
|
globecrash |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo
Danke. Ich hab mir das kapitel über timer in renes buch 2 mal durchgelesen aber da hab ichs nicht so richtig verstanden und bei robstutorial wird glaube ich gar nicht erwähnt.danke nochmals. mfg Fu |
||
globecrash |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo
es geht immer noch nicht, also der code Code: [AUSKLAPPEN] start = millisecs() if millisecs > start+ 30000 then print "game over" so habe ich das in meinem spiel hinein gemacht aber es geht nicht. Wieso? es zeigt nicht game over an?!?! danke im vorraus mfg Fu |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
du musst
Code: [AUSKLAPPEN] start= Millisecs() außerhalb der Hauptschleife haben. ist doch logisch ![]() MfG |
||
![]() |
Blatolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
du musst das noch in eine schliefe tun, sonst durchläuft der das ja nur einmal und da stimmt dir überprüfung nicht und das programm wird beendet.
Also einfach die Überprüfung in ne schleife. |
||
globecrash |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo
also sagen wir das wäre mein ganzer code bzw spiel funktiniert es trotzdem nicht.Code: [AUSKLAPPEN] repeat start = Millisecs() if Millisecs() > start 30000 then print "game over" forever wieso? mfg Fu ps: kann das daran liegen das ich die blitz2d demo habe? |
||
graythread |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] start = Millisecs()
repeat if Millisecs() > start 30000 then print "game over" forever so tuts, lies dir das hier nochmal durch, genauso haben die dir das auch erklährt! |
||
René Meyer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und ein Plus wäre nicht schlecht. | ||
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb |
![]() |
Xenon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn schon so, dann erspart ihm doch wenigstens dieses ewige addieren!
Code: [AUSKLAPPEN] start = Millisecs() + 30000
repeat if Millisecs() > start then print "game over" forever |
||
![]() |
Blatolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
@xenon
Dann würde ich die vari aber nicht start sondern eher ziel nennen da das ja die zeit ist bis zu der man zeit hat. Und man sollte noch ein exit dranhängen sonst zeigt der das ja dauernd an, oder ein end wenn das programm dann komplett beendet werden soll. |
||
graythread |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Zeit_wenn_Programm_beendet= Millisecs() + 30000 repeat if Millisecs() > Zeit_wenn_Programm_beendet then print "game over" delay 1000 end endif forever So, der läuft jetzt, damit is die Diskusion beendet hoffe ich;). Falls noch Fragen sind, dann darfste sie natürlich noch stellen;). |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group