Probleme mit End

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Akiba

Betreff: Probleme mit End

BeitragMo, Dez 29, 2008 2:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab zu einem Programm, welches ich schreiben möchte, ein bisschen Quelltext geschrieben. Dieser zeigt einen Titelbildschirm mit zwei Auswahl möglichkeiten (Start, Ende). Bei beiden wird das Programm aber im Moment noch beendet (oder zumindest sollte es beendet werden).

Bei Start wird beim drücken der Enter-Taste, die Variable "Weiter" auf 1 gesetzt, somit ist die Abbruchsbedingung für die repeat-until Schleife wahr und danach wird das Programm mit End beendet - funktioniert auch!

Bei Ende steht direkt nach nach der If-Bedingung das Ende --> If (KeyHit(28)) And (CursorPos = 2) Then End
Aber das funktioniert leider nicht und ich habe keine Ahnung wieso. Könnt ihr mir helfen?

Hier der ganze Quelltext

Code: [AUSKLAPPEN]

x = 640
y = 480
Graphics x, y

TimerMain = CreateTimer(30)

ArialBlack = LoadFont ("Arial Black", 75)
SetFont ArialBlack

CursorPos = 1
Weiter = 0

Repeat
   Cls
   Text 0, 0, CursorPos

   Color 255, 0, 0
   Text x/2, 100, "M O N S T E R", 1, 1

   If CursorPos = 1 Then
      Text 210, (y/2), ">", 1, 1
   Else
      Text 210, (y/2) + 100, ">", 1, 1
   EndIf

   Color 255, 255, 255
   Text x/2, (y/2), "Start", 1, 1
   Text x/2, (y/2) + 100, "Ende", 1, 1
   
   If KeyHit(200) Then CursorPos = 1
   If KeyHit(208) Then CursorPos = 2
   
   If (KeyHit(28)) And (CursorPos = 1) Then Weiter = 1      
   ;Folgende Anweisung funktioniert nicht
   If (KeyHit(28)) And (CursorPos = 2) Then End
            
   WaitTimer TimerMain
   
   Flip
Until Weiter = 1

End
Luigi, man wendet sich nich gegen Familie...

Thorsten

BeitragMo, Dez 29, 2008 3:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

   If (KeyHit(28)) And (CursorPos = 1) Then Weiter = 1     
   ;Folgende Anweisung funktioniert nicht
   If (KeyHit(28)) And (CursorPos = 2) Then End

Durch das erste KeyHit(28) wird KeyHit für diesen Durchlauf schon abgefragt und dann auf 0 gesetzt.

Mach es so :
Code: [AUSKLAPPEN]

  taste=KeyHit(28)

  If taste And CursorPos=1 Then Weiter=1
  If taste And CursorPos=2 Then End


Wie mein code außerdem preis gibt, sind deine gesetzten Klammern überflüssig ^^

mfG,

Thorsten

Akiba

BeitragMo, Dez 29, 2008 3:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Cool, danke, ich bin schon verzweifelt, aber jetzt gehts Very Happy
Luigi, man wendet sich nich gegen Familie...

Golden Age

BeitragMo, Dez 29, 2008 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne´weitere Möglichkeit wäre es übrigens auch statt KeyHit einfach KeyDown abzufragen, dann wird abgefragt ob die Taste gedrückt wird und so funktioniert es dann auch.

The_Nici

BeitragMo, Dez 29, 2008 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
GOldenAge, das wär dann aber ziemlich unschön gelöst.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group