Zeit einblenden

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

petecoolbelab

Betreff: Zeit einblenden

BeitragMi, Apr 23, 2008 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Wie kann ich in meinem Spiel oben Links die Zeit einblenden, die der Spieler schon das Spiel Spielt?

skey-z

BeitragMi, Apr 23, 2008 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
mit Millisecs() und Text
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Hubsi

BeitragDo, Apr 24, 2008 7:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function MilliSecsToTime$(msecs%)
   Local seconds%,minutes%,hours%
   Local timestring$
   msecs = msecs/1000
   minutes = (msecs - (msecs Mod 60))/60
   msecs = msecs - minutes*60
   seconds = msecs
   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

Ist eine Funktion von... lasst mich jetzt nicht lügen... Rallimen. Übergeben wird der Wert in Millisekunden.

BladeRunner

Moderator

BeitragDo, Apr 24, 2008 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 120,40,32,2
SetBuffer BackBuffer()

startzeit = MilliSecs()

Repeat
   Cls
   Text 0,0, millisecstotime(MilliSecs()-startzeit)
   Flip
Until KeyHit(1)

Function MilliSecsToTime$(msecs%)

   Local seconds%,minutes%,hours%
   Local timestring$

   msecs = msecs/1000
   minutes = (msecs - (msecs Mod 60))/60
   hours = (minutes - (minutes Mod 60))/60
   msecs = msecs - minutes*60
   minutes = minutes- hours*60   
   seconds = msecs

   If hours < 10
      timestring$ = timestring$ + "0"+Str$(hours)+":"
   Else
      timestring$ = 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

Erweitert um die Stundenanzeige die fehlte und mit kleinem Beispiel als Aufruf.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Apr 24, 2008 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, die ganzen If-Abfragen sind nicht ganz so mein Ding. Daher biete ich hier auch noch eine von BladeRunner's Lösung überarbeitete Möglichkeit:

Code: [AUSKLAPPEN]
Function MilliSecsToTime$(msecs%)
   Local timestring$=""
   
   timestring$=Right$("00"+Str$((msecs/3600000) Mod 24),2)+":" ;Stunden
   timestring$=timestring$+Right$("00"+Str$((msecs/60000) Mod 60),2)+":" ;Minuten
   timestring$=timestring$+Right$("00"+Str$((msecs/1000) Mod 60),2)+":" ;Sekunden
   timestring$=timestring$+Right$("00"+Str$((msecs/10) Mod 100),2) ;Hundertstel
   
   Return timestring$
End Function


Aufruf bleibt der selbe.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

BladeRunner

Moderator

BeitragDo, Apr 24, 2008 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr nice, das.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

petecoolbelab

BeitragSa, Apr 26, 2008 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Zuerst mal danke, eure Functions sind echt cool. Habe aber ein zweites Problem. nämlich wird die Zeit nicht angezeigt, weil ja mein Hintergrundbild davor steht und es überdeckt. Somit wird die Zeit net angezeigt. Bitte helft mir.

Mein Code:
Code: [AUSKLAPPEN]
Graphics 640, 480, 16, 3
SetBuffer BackBuffer()

Man = LoadAnimImage ("Man2_Test.png", 80, 80, 0, 12)
MaskImage Man, 255, 255, 255
Map1 = LoadImage ("Map.png")
MaskImage Map1, 0, 0, 0
K1 = LoadImage("Kästchen.png")
MaskImage K1, 255, 255, 255
Dauer= MilliSecs
Pfeil1 = LoadImage("Pfeil1.png")
MaskImage Pfeil1, 255, 255, 255
Explosion1 = LoadAnimImage ("Explosion1.png", 30, 30, 0, 3)
MaskImage Explosion1, 255, 255, 255

startzeit = MilliSecs()

   Text 0,0, millisecstotime(MilliSecs()-startzeit)
   Flip


Function MilliSecsToTime$(msecs%)

   Local seconds%,minutes%,hours%
   Local timestring$

   msecs = msecs/1000
   minutes = (msecs - (msecs Mod 60))/60
   hours = (minutes - (minutes Mod 60))/60
   msecs = msecs - minutes*60
   minutes = minutes- hours*60   
   seconds = msecs

   If hours < 10
      timestring$ = timestring$ + "0"+Str$(hours)+":"
   Else
      timestring$ = 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

Repeat
  Cls
   
   MilliSecs()
   
   
   DrawImage Map1, 1, 1; Hintergrund zeichnen
   
   DrawImage Man, Xpos, 360, frame ; Männchen Zeichnen
   
   If KeyHit(205) Or KeyHit (203) Then
   HitTimer = MilliSecs() + 50000
   EndIf
   
   If HitTimer > MilliSecs () And zeit2 + 10 < MilliSecs() Then
      zeit2 = MilliSecs()
   DrawImage Pfeil1, 310, Ypos
   EndIf
   
   If ImagesCollide(Man, Xpos, 360, frame,  Pfeil1, 310, Ypos, 0) Then
   DrawImage Explosion1, 310, 360, fr
   EndIf
   
   If zeit3 + 50 < MilliSecs() And  fr = 1 Or 0 Then
      zeit3 = MilliSecs()
   fr = fr +1
   EndIf
   
   If fr = 2 And Hitt > MilliSecs() Then
      Hitt = MilliSecs() + 1000
   fr =2
   EndIf
   
   

   If Ypos < 400 Then
   Ypos = Ypos + 1
   EndIf
   
   If Ypos = 399 Then
   Ypos = 401
   EndIf
   
      
   If Ypos > 400 Then
   Ypos = Ypos
   EndIf
   
   If Ypos < 2 Then
   DrawImage Pfeil1, 310, Ypos
   EndIf
   
         
   If KeyDown(205) And zeit + 100 < MilliSecs() Then ; Figur geht nach vorne und wenn frame=5 dann frame=1
      zeit = MilliSecs()
   frame = frame + 1
   If frame = 5 Then frame = 1
   EndIf
   
   If KeyDown(203) And zeit + 100 < MilliSecs() Then ; wenn <- dann figur geht
      zeit = MilliSecs()
   frame = frame + 1
   If frame = 10 Then frame = 6
   EndIf
   
   If KeyDown(200) And zeit + 100 < MilliSecs() Then ; wenn <- dann figur geht
      zeit = MilliSecs()
   frame = frame + 1
   If frame = 12 Then frame = 11
   EndIf
      
   If Dauer = 1000 Then
   DrawImage K1, 640, 310
   EndIf
   
   Include "IFs.bb"
   
   If Xpos > 640 Then
   Xpos = 1
   EndIf
   
   If Xpos < 0 Then
   Xpos = 640
   EndIf
   
   
  Flip
Until KeyHit(1)
End

Eingeproggt

BeitragSa, Apr 26, 2008 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Text 0,0, millisecstotime(MilliSecs()-startzeit)

in die Schleife schreiben?

mfG
 

petecoolbelab

BeitragSo, Apr 27, 2008 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
danke

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group