Text wird bei Wiederholung nicht ausgegeben

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Golden Age

Betreff: Text wird bei Wiederholung nicht ausgegeben

BeitragSa, Sep 27, 2008 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Titel=Problem
Code: [AUSKLAPPEN]
Graphics3D 1024,768,32
SetBuffer BackBuffer()
Text GraphicsWidth()/2.4, GraphicsHeight()/GraphicsHeight(), "The first 3D-Game"
Text 0, 30, "Starte mit Enter/Beende mit Escape"
.Repeating
If KeyHit(1)
End
EndIf
warten= MilliSecs()

If KeyHit(28)
.weiter
Text GraphicsWidth()/2-60,GraphicsHeight()/2,"Es beginnt!"
EndIf
If MilliSecs()> warten+2000
End
EndIf
Goto weiter
EndIf
Flip
Goto Repeating

Der text Es beginnt wird nicht ausgegeben, aber wieso?

The_Nici

BeitragSa, Sep 27, 2008 12:58
Antworten mit Zitat
Benutzer-Profile anzeigen
arghl. x_X
Rücke deinen Code mit Tabulatoren ein, verwende KEIN Goto. Bitte.
Ich habe nämlich keine Ahnung was der Code jetzt genau machen soll.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Sep 27, 2008 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Es funktioniert schon deshalb nicht, weil eine eindeutige Fehlermeldung aufpoppt bevor überhaupt das Programm zum laufen beginnt: ''EndIf'' without ''If'' sollte klar sein.

Zum übrigen ist die Logik komplett falsch.

----

Meine Interpretation vom Code: [AUSKLAPPEN]
Graphics3D 1024,768,0,2
SetBuffer BackBuffer()

Local Timer=CreateTimer(60) ;Auf 60 FPS setzen
Local GfxW=GraphicsWidth() ;Unnötige Funktionsaufrufe im Mainloop vermeiden
Local GfxH=GraphicsHeight()


;MAINLOOP
While Not KeyHit(1)
   
   If (MilliSecs()<warten+2000) Then End
   
   Text GfxW/2,0,"The first 3D-Game",1 ;Letzter PARAMETER=1 zentriert den Text
   Text 0,30,"Starte mit Enter/Beende mit Escape"
   
   If KeyHit(28) Then
      Text GfxW/2-60,GfxH/2,"Es beginnt!"
   EndIf
   
   WaitTimer(Timer)
   Flip 0
   Cls
Wend
End
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Golden Age

BeitragSa, Sep 27, 2008 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, aber bei deinem Code blinkt das "Es beginnt!" nur ganz kurz auf, das heißt der Timer geht nicht richtig oder so, oder an was liegt das?

the FR3AK

BeitragSa, Sep 27, 2008 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Schonmal bemerkt das das "Es beginnt" in einer KeyHit Abfrage steht?

Das heisst dass es nur einmal kurz aufblinkt wenn die Taste gedrückt wird Wink

Golden Age

BeitragSa, Sep 27, 2008 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahh ja, stimmt, aber kann man den Text nicht irgendwie da länger ausgeben lassen?

The_Nici

BeitragSa, Sep 27, 2008 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wärs mit dem benutzen einer Variable?

the FR3AK

BeitragSa, Sep 27, 2008 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Bau einen Timer mit Millisecs dann kannst du ihn beliebig viele (Milli)Sekunden anzeigen^^

Golden Age

BeitragSa, Sep 27, 2008 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, jetzt funktioniert alles so wies soll, so siehts jetzt aus:
Code: [AUSKLAPPEN]
Graphics3D 1024,768,0,2
SetBuffer BackBuffer()

Local GfxW=GraphicsWidth() ;Unnötige Funktionsaufrufe im Mainloop vermeiden
Local GfxH=GraphicsHeight()


;MAINLOOP
While Not KeyHit(a) ;damit keine Taste beenden kann
   
     
   Text GfxW/2,0,"The first 3D-Game",1 ;Letzter PARAMETER=1 zentriert den Text
   Text 0,30,"Starte mit Enter/Beende mit Escape"
   
   If KeyHit(28) And beenden = False
   dauer=MilliSecs()
   EndIf
   
      If MilliSecs()<dauer+2000
      Text GfxW/2,300,"Es beginnt",1 ;Letzter PARAMETER=1 zentriert den Text
      beenden = True
      EndIf
      
      If MilliSecs()>dauer+2000 And beenden = True
      End
       benden = False
      EndIf
   
   Flip
      Cls
Wend
[/code][/quote]

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group