Kleine Hilfe für Einsteiger

Previous topic - Next topic

Joergpaul

Hallo GLBasic-User
Ich bin Jörg aus Berlin und gerade dabei, ein Kartenspiel als Erstlingswerk zu programmieren. Bisher klappt auch alles sehr gut, aber bei einer Sache komme ich einfach nicht weiter: Tastaturabfrage
Ich habe ein Bild, wo man entweder eine Taste j oder n drücken muss. Bei "ja", geht es zum Unterprogramm Anleitung, bei "nein" soll das Programm einfach weitergehen:

....
SHOWSCREEN
IF KEY (36) THEN GOSUB Anleitung
IF KEY (49) THEN ?
...


So wie oben, passiert einfach nichts. Programm läuft einfach weiter...  :( Ich finde auch nirgend ein Beispiel  :'( Und würde mich sehr über ein kleines Beispiel freuen  :)
Ist sicher nur nur eine Kleinigkeit und Ihr würdet mir sehr helfen. Das Kartenspiel mit hübscher Grafik stelle ich natürlich nach Fertigstellung hier rein...

Herzlichen Dank im voraus
und LG Jörg



Joergpaul

Danke, hat sich inzwischen erledigt, mir kam die Erleuchtung bei einer tasse Kaffee..  :)

KEYWAIT
IF KEY (36) = 1 THEN GOSUB Anleitung

Das ist schon alles...
LG aus Berlin Jörg

Quentin

na dann willkommen erst einmal.

Aber was soll daran nicht funktionieren. Um das  beurteilen zu können, bräuchte man wohl mehr vom Coding. Was mir nur gleich ins Auge springt, ist  das SHOWSCREEN vor den Unterprogramm-Aufrufen. Überlicherweise ist SHOWSCREEN die letzte Anweisung in der Hauptschleife.

z.B.
Code (glbasic) Select

WHILE TRUE
    unterprog1()
    unterprog2()
    ...
    SHOWSCREEN
WEND


nach SHOWSCREEN können natürlich noch weitere Berechnungen folgen, sinnvollerweise aber keine Bildschirmausgaben mehr, da diese möglicherweise nicht mehr dargestellt werden können, wenn du z.B. zu Beginn deiner WHILE-Schleife CLEARSCREEN aufrufst.

KEYWAIT erscheint hier wenig sinnvoll. Wenn du z.B. aus deinem Spiel in ein anderes Programm wechselst und wieder zurück, wirst du sehr wahrscheinlich erst mal nur ein leeres Fenster sehen, bis du wieder eine entsprechende Taste gedrückt hast.

Joergpaul

Danke Quentin,

das mit dem Showscreen  habe ich noch nicht so ganz verstanden, weil ich ein wenig Probleme mit meinem 17 + 4 damit habe: wenn die erste karte aufgedeckt wird  und ich  eine zweite daneben platzieren will, und ich showscreen eingebe, werden alle karten geköscht.... Aber so generiert man seine grauen Zellen. Auch habe ich momentan das Problem, dass  ich die RND-variable zwar immer wieder neu (also nicht doppelt) herstellen kann, ich aber immer dieselbe erste karte habe... Na ja, muss da noch etwas probieren. Bin zwar in Grafik sehr gut, aber als ich das letzte Mal in BASIC programmierte, ist schon ne Weile her. Das erste Mal mit dem Sinclair Spectrum... Auh weia, traue mich,das eigentlich nicht zu sagen  =D

LG aus Berlin Jörg

Quentin

*lol*
warum nicht? Viele hier haben mit C64, Amiga oder ähnlichem begonnen. Ich glaube, einen Lochkartenstanzer haben wir nicht dabei :), bin mir aber nicht sicher.

Wegen Zufallszahlen:
Sieh dir mal die Funktions SEEDRND an. Wenn du die vorher aufrufst, bekommst du mit RND dann auch unterschiedliche "zufällige" Zahlen

wegen SHOWSCREEN:
GLBasic arbeitet im Prinzip mit zwei Bildschirm-Seiten, die eine siehst du auf dem Monitor, die andere ist verborgen im Speicher. Wenn du jetzt in deinem Programm Grafik-Befehle aufrufst, schreiben diese erst in den unsichtbaren Bereich. Wird dann SHOWSCREEN aufgerufen, wechelt die Anzeige dorthin und zeigt alles an. Such bei Onkel Google mal nach "Backbuffer" oder "Double buffering", da wird das wohl noch besser erklärt.