Texte angezeigt lassen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Raiden93

Betreff: Texte angezeigt lassen

BeitragDo, Apr 01, 2010 10:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie schaffe ich es das mein Text mindestens 3 sec eingeblendet bleibt?

Code: [AUSKLAPPEN]

If KeyHit(59) Then
  If CashError = 1 Then
    If Cash > 9 Then
      CashError = 2
      Pongtimer = 2
      Cash = Cash -10
      Pongupkosten = 20
    Else
      Text 400,300, "Nicht genug Cash"
    End If
  End if
End if

Jo0oker

BeitragDo, Apr 01, 2010 10:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, nutz einfach Millisecs:

Code: [AUSKLAPPEN]

;Vor der Schleife
MeinTimer = Millisecs()


Code: [AUSKLAPPEN]

If(MeinTimer > Millisecs()+3000)
;Hier den Text rein!
endif



Sollte helfen oder?

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

US-Blitz

ehemals "SimssmiS"

BeitragDo, Apr 01, 2010 10:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Vieleicht mit Delay 3000 aber da wir das ganze Prog angehalten wenn dir das aber reicht hast du jetzt ne lösung
Edit:Naja das andere is besser
  • Zuletzt bearbeitet von US-Blitz am Do, Apr 01, 2010 10:58, insgesamt einmal bearbeitet

Starwar

BeitragDo, Apr 01, 2010 10:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Millisecs
Code: [AUSKLAPPEN]
start=Millisecs()
Repeat
Text("Hallo")
Until (start+3000 <= Millisecs())

So als Beispiel. Du musst es dann natürlich entsprechend in deine Hauptschleife einbauen. Aber das überlasse ich dir Wink
MFG

Raiden93

BeitragDo, Apr 01, 2010 11:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Es scheint nicht zu Funktionieren hier das geänderte.
Code: [AUSKLAPPEN]

;Timer Variablen
TimerUpgrade1 = MilliSecs()

Code: [AUSKLAPPEN]


If KeyHit(59) Then
  If CashError = 1 Then
    If Cash > 9 Then
      CashError = 2
      Pongtimer = 2
      Cash = Cash -10
      Pongupkosten = 20
    Else
      If(TimerUpgrade1 > MilliSecs()+3000)
        Text 400,300, "Nicht genug Cash"
      End If
    End If
  End if
End if

Jo0oker

BeitragDo, Apr 01, 2010 11:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Sicher das die anderen Bedingungen die ganze Zeit rue ergeben?

Scheint mir nämlich nicht so:
Code: [AUSKLAPPEN]

If KeyHit(59) Then


lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

Raiden93

BeitragDo, Apr 01, 2010 11:11
Antworten mit Zitat
Benutzer-Profile anzeigen
mit KeyDown gehts auch nicht ;(

Nicdel

BeitragDo, Apr 01, 2010 11:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach die Anzeige auch in die Hauptschleife und frag mit einer Variable ab, ob es angeszeigt werden soll.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Jo0oker

BeitragDo, Apr 01, 2010 11:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Logik dadrin stimmt auch nicht so ganz Smile

Schau dir mal den folgenden Code an:

Code: [AUSKLAPPEN]



SetBuffer BackBuffer()

Local CheckCash = 0
Local TimerUpgrade1 = MilliSecs()
;
Local CashError = 1
Local Cash = 0;
While Not KeyHit(1)
   
   Cls



   If KeyHit(28) Then
      CheckCash = 1
      TimerUpgrade1 = MilliSecs()
      
Else
   
EndIf
   


If CheckCash = 1 Then
   
   If CashError = 1 Then
      
      If Cash > 9 Then
         CashError = 2
         Pongtimer = 2
         Cash = Cash -10
         Pongupkosten = 20
      Else
         
         If(TimerUpgrade1+3000 > MilliSecs())
            
            Text 100,100, "Nicht genug Cash"
         Else
            
            CheckCash = 0
            
            
         End If
      End If
   End If
EndIf

Flip

Wend


Die Variablenwerte sind nur so zum Testen gesetzt Very Happy

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

Raiden93

BeitragDo, Apr 01, 2010 11:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Timer Variablen
Global TimerUpgrade1 = MilliSecs()


Ist über die Hauptschleife ohne if schleife

nur der untere Code stimmt bei dir wie bei mir.

und ich finde leider keinen Fehler.

Jo0oker

BeitragDo, Apr 01, 2010 11:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Sicher das CashError 1 ist und Cash kleiner als 9?

Und schau dir meins nochmal genau an, du hast da irwo auch einen Logikfehler drin!

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

Raiden93

BeitragDo, Apr 01, 2010 11:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke mal du meinst das mit dem Casherror nur das soll so sein weil jedesmal wenn mein Pong ein upgrade kriegt wird Casherror um 1 erhöht. Casherror sitzt in eine case schleife.

flona

BeitragDo, Apr 01, 2010 11:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt keine Case-Schleifen. Schleife = Wiederholung
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

Raiden93

BeitragDo, Apr 01, 2010 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
ok aber auf jedem Fall stimmt es mit dem cash error

Midimaster

BeitragDo, Apr 01, 2010 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
den Timer darfst du erst aud Millisecs() setzen, wenn das 0-Cash Problem auftritt. Wenn der User die Taste drückt, wird geprüft und nun wird der Timer gesetzt. Das Zeichnen erfolgt immer außerhalb dieser Prüfung. Das Zeichen findet aber eben nur statt, wenn der Timer gesetzt wurde:


Repeat
If KeyHit(59) Then
If CashError = 1 Then
If Cash > 9 Then
CashError = 2
Pongtimer = 2
Cash = Cash -10
Pongupkosten = 20
Else
TimerUpgrade1 = MilliSecs()+3000
End If
End If
End if

If TimerUpgrade1 > Millisecs() Then
Text 100,100, "Nicht genug Cash"
Endif
Flip
Forever

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group