Einen Timer bauen`??

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Blitzkrieg Bop

Betreff: Einen Timer bauen`??

BeitragFr, März 19, 2004 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, wie macht man am ´besten nen timer, der zeit begrenzt und wo man auch sheen kann, wieviel zeit man noch hat?
bitte mit code beispeil
~ Hey Ho Let's Go ~

BladeRunner

Moderator

BeitragFr, März 19, 2004 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir Millisecs() an, überleg ein bissl was du damit alles machen kannst, bau dir einen Code zusammen, poste ihn (wenn er nicht ganz so wie funktioniert wie gedacht) und dann kann man über weitere Hilfestellung nachdenken...

EDIT: Forumsuche hilft auch gerne....
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
 

Blitzkrieg Bop

BeitragFr, März 19, 2004 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
aber immer doch!
also, im forum hab ich gesucht, nix gefunden und hier mein code:
Code: [AUSKLAPPEN]


prog_ende = MilliSecs() + 30000 
SeedRnd(MilliSecs())


Repeat


If MilliSecs() > prog_ende Then 
 End
EndIf
forever



so, das geht auch, also das prog endet nach 30 sekunden nur:
wie kann ich jetzt noch die ablaufende zeit anzeigen lassen?
~ Hey Ho Let's Go ~

BladeRunner

Moderator

BeitragFr, März 19, 2004 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Also:
Das Seedrnd(millisecs()) ist zumindest für den Timer nit vonnöten.
Ansonsten ist der Code schon mal nit verkehrt. Du willst eine Restzeitangabe, also schauen wir mal:
Die Restzeit wäre: Code: [AUSKLAPPEN]
prog_ende-millisecs()

Das ist noch in Millisekunden, für ne Sekunden-Angabe also:
Code: [AUSKLAPPEN]
restzeit=((prog_ende-millisecs())/1000)
.
Das kannst Du mit text in deiner Flipschleife ausgeben.

PS: du könntest das Ganze auch noch in Minuten zerlegen (auch ne simple division und Restbestimmung per Mod).

Alles klar ?
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
 

Blitzkrieg Bop

BeitragFr, März 19, 2004 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für dienen code, in sekunden kann ich das nun angeben, doch wie ist es, wenn zum beispiel eine minute und 30 sekunden ablaufen sollen?
also in dem format:

1:30

und dann sollen erst 30 sek. abnehmen, dann sollen noch 60 sekunden stehen, die ablaufen
~ Hey Ho Let's Go ~

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, März 20, 2004 0:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie Bladerunner schon angeführt hat in etwa so....
Code: [AUSKLAPPEN]
Graphics 800,600,16,2  :SetBuffer BackBuffer()

Endzeit =  MilliSecs()+ 90000 ;Also 90 sekunden
While zeitausgabe(Endzeit,100,100);################
; die Schleife wird solange ausgeführt bis die Zeit abgelaufen ist
Flip :Cls
Wend;##################################################

   Print "Zeit abgelaufen"
   Delay 5000
   End
   
Function zeitausgabe(Endzeit,x,y)
restzeit = Endzeit - MilliSecs() ;restliche Millisekunden
If restzeit < 0 Then Return False

restzeit = restzeit /1000 ;in sekunden
minute% = restzeit/60 ; nur die Minuten beechnen
sekunde% = restzeit Mod 60 ; mit Mod die Restlichen sekunden berechnen
Sekunden$ = sekunde% ; aus den Sekundeneine String machen

If Len(Sekunden$) < 2 Then Sekunden$ = "0"+ Sekunden$
Text 100,100,minute%+":"+Sekunden$
Return True

End Function
[BB2D | BB3D | BB+]

Mogologo

BeitragSa, März 20, 2004 10:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab es so geacht, aber keine anung ob dir das helfen kann bin auch erst neu
ist auch 3d und nicht 2d Embarassed
aber das geht glaube ich auch in 2d

Code: [AUSKLAPPEN]
;---------------------------------------------------
Graphics3D 640,480,16,2
CreateCamera()
CreateLight()

Global Cyli = CreateCylinder (50,1)
EntityColor Cyli, 100,255,100
;---------------------------------------------------
Function mano()
PositionEntity Cyli,0,0,3
End Function

 
;--------------------------------------------------
counter=0
While Not KeyHit(1)
counter=counter+1
;--------------------------------------------------
    If counter>100 And counter<500 Then
       MoveEntity Cyli,0,0,0
   EndIf
   
   If counter>100 And counter<200 Then
   RotateMesh Cyli,0,0,1
   MoveEntity Cyli,0,0,0.01
   EndIf
   If counter>200 And counter<300 Then
   RotateMesh Cyli,0,1,0
   MoveEntity Cyli,0,0,0.01
   EndIf
   If counter>300 And counter<400 Then
   RotateMesh Cyli,1,0,0
   MoveEntity Cyli,0,0,0.01
   EndIf
         
   If counter=100 Then
        mano()
      EndIf

        If counter=200 Then
          mano()
        EndIf

          If counter=300 Then
            mano()
          EndIf
 
If counter=550 Then
FreeEntity Cyli
End If
         

   
;--------------------------------------------------
UpdateWorld
   RenderWorld
   Flip
Wend

TheShadow

Moderator

BeitragSa, März 20, 2004 12:23
Antworten mit Zitat
Benutzer-Profile anzeigen
auf blitzbase gibt es einen timer den du sogar für eine pause anhalten kannst...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group