Zeitlimits setzen
Übersicht

GastBetreff: Zeitlimits setzen |
![]() Antworten mit Zitat |
|
---|---|---|
Hi, ich will ein Jump & Run Spiel machen. Dass das Spiel nicht so einfach und primitiv wird, wollte ich Zeitlimits setzten. (x - min Zeit um das Level zu gewinnen). Die Zeit sollte oben angezeigt werden, und bei ablauf des Limits das Level neu starten. Kann mir jemand helfen? | ||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] level_secs = 5*60 ; 5min jetzt_zeit = MilliSecs() Graphics 640,480,16,2 SetBuffer BackBuffer() Repeat Cls msecs=MilliSecs() If msecs-jetzt_zeit>1000 And level_secs>0 level_secs=level_secs-1 jetzt_zeit=msecs EndIf If level_secs=0 Text 320,240,"Zeit abgelaufen",1,1 Else Text 320,240,"Noch "+Str(level_secs)+" Sekunden",1,1 EndIf Flip Until KeyHit(1) : End |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auf blitzbase findest du Zeitfunktion die du für eine Pause sogar anhalten kannst... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tach,
bin totaler BB-anfänger und stöber hier mal so rum, daher hätt ich ein paar fragen: millisecs() - was bewirkt dieser befehl ? wieso steht im code oben in der ersten If_bedingung *jetzt_zeit=msecs* ? beide haben doch den gleichen wert (millisecs() ). wäre für antworten dankbar |
||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Befehl Millisecs() gibt eine Zahl zurück, die der Anzahl der Millisekunden entspricht, die seit dem Start von Windows vergangen sind. | ||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn ich also am anfang des codes
start=millisecs() einfüge und am ende ende=millisecs() würde die zeile gesamtzeit=ende-start die zeit anzeigen, die das programm benutzt wurde (durch 1000 teilen ums in sekunden anzuzeigen)? trotzdem komm ichnich auf den sinn der ersten IF-Bedingung. wieso wird jetzt_zeit mit msecs gleichgestezt ? |
||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Korrekt. | ||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weils in einer Schleife steht. jetzt_zeit wird also aktualisiert, da zuvor msecs die aktuelle Zeit von MilliSecs() zugeordnet wurde. | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Xenon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicht Korrekt!!!!!!!
start-ende und nicht ende-start! |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
doch | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gibts unter BB einen befehl diese Zeitangaben formatiert anzeigen zu lassen ?
So in der Art, dass 1 Sek. zb. als 0:00:1 oder 0:01 dargestellt wird oder wie löst man ein solches problem ? wäre für antworten dankbar |
||
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Function MillisecsToTime$(msecs%) Local seconds%,minutes%,hours% Local timestring$ msecs = msecs/1000 DebugLog msecs hours = (msecs - (msecs Mod 3600))/3600 DebugLog hours msecs = msecs - hours*3600 DebugLog msecs DebugLog (msecs Mod 60) minutes = (msecs - (msecs Mod 60))/60 DebugLog minutes msecs = msecs - minutes*60 DebugLog msecs seconds = msecs DebugLog seconds If hours < 10 timestring$ = "0"+Str$(hours)+":" Else timestring$ = Str$(hours)+":" End If If minutes < 10 timestring$ = timestring$ + "0"+Str$(minutes)+":" Else timestring$ = timestring$ + Str$(minutes)+":" End If If seconds < 10 timestring$ = timestring$ + "0"+Str$(seconds) Else timestring$ = timestring$ + Str$(seconds) End If Return timestring$ End Function mfG Ctuchik |
||
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm, wie gesagt, bin totaler newbi.
hab den code eingefügt. aber was bewirkt der code ? wie druck ich die zeitvariable aus in der gewünschten formatierung ? bisher sieht bei mir der code für die zeitberechnung so aus: start=MilliSecs() .sprungmarke Print zeit/1000 ende=MilliSecs() zeit=ende-start wie sorg ich jetzt für die formatierte ausgabe (0:00) |
||
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Print MillisecsToTime$(zeit)
Erklärung: Der Code den ich geschrieben hab ist eine Funktion mit dem Namen MillisecsToTime$! Sie bekommt einen Parameter übergeben und zwar die Zeit in Millisekunden die du formatiert dargestellt haben möchtest! Du kannst sie zum Beispiel so aufrufen: Print MillisecsToTime$(65000) Dann wird 65000 Millisekunden umgerechnet und (dazu sit das print da ![]() Oder eben mit der Variablen für die Zeit Print MillisecsToTime$(zeit) mfG Ctuchik |
||
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
vielen dank, jetzt leuchtets ein ![]() auch wenns wohl noch lange dauern wird, bis ich selbst auf son code komme... |
||
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jeder hat mal klein angefangen ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group