Kleines Problem mit Esc
Übersicht

![]() |
GinaBetreff: Kleines Problem mit Esc |
![]() Antworten mit Zitat ![]() |
---|---|---|
Irgendwie habe ich ein Problem damit, mit Esc ins Menü zu kommen. Scheint so, als wenn er während der ganzen lange Programmroutine die Abfrage "vergißt".
Habs mit while/wend probiert und mit Repeat/until und mit Getkey() und Keyhit(), aber irgendwie klappt das nicht. Was muß ich machen, damit man jederzeit während des Spiels mit Esc raus und ins Menü kommt? Ich kann das doch nicht ständig abfragen, oder? Bevor ich ein Menü hatte, hab ich damit das Spiel beendet. Jetzt , wo das Menü da ist, komme ich da nicht rein, außer wenn das Spiel zu Ende ist. *grml* Ich hab wirklich alles probiert was mir eingefallen ist... ![]() Bin für jeden Hinweis dankbar, Gina. |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Du musst bei jedem Durchlauf der Hauptschleife prüfen ob ESC gedrückt wurde. Anders gehtz nicht. grüße |
||
http://bl4ckd0g.funpic.de |
raiden |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
keyhit fragt ab, ob eine Taste gedrückt wurde, löscht aber dann sofort den Zwischenspeicher, in dem das vermerkt wird. Wenn Du also in einer Unterroutine keyhit abfragst und am Ende der Hauptschleife nochmal, wird bei der zweiten Abfrage das Ergebnis Nein sein, weil Du kaum 2mal so schnell hintereinander Esc drücken kannst, wie das Programm von einer Abfrage zur nächsten braucht. Sicherer ist keydown, welches abfragt, ob die Taste im Moment gedrückt ist, nur mußt Du da selbst für einen Puffer sorgen, damit Du nicht mit Esc direkt aus der Hauptschleife und dann auch noch aus dem Programm fliegst, wenn die Taste mehrere Funktionen hat. Eine simple Methode wäre:
Code: [AUSKLAPPEN] While mainmode=1
(...) If KeyDown(1) Then mainmode=0 Delay 50 EndIf Wend Manuel |
||
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum geht doch nicht so schwer!
Wenn du vom Menü zum Spiel mit Gosub springst dann so: Code: [AUSKLAPPEN] .Spiel
Repeat (...) If KeyHit(1) Then Return Forever Und Wenn dein Spiel eine Function ist muss dass Menü auch eine Function sein: Code: [AUSKLAPPEN] Function Spiel()
Repeat (...) If KeyHit(1) Then Menü() Forever End Function |
||
Glauben ist Mangel an Wissen! |
![]() |
Gina |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank, dann werde ich mal alle Varianten testen.
Die von Bfox klappt schonmal super in einem kleinen Test. Mal sehen, was mein Spiel dazu sagt.. Nochmals danke, Gina. |
||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe eine globale Variable namens weiter=1.
Diese wird in der Hauptschleife abgefragt: if weiter = 0 then exit Man kann jetzt überall im Spiel (also auch in Unterfunktionen) das Spiel beenden, indem man weiter=0 setzt. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group