Hallo,
ich habe Probleme drei gleichzeitig gedrückte Tasten zu erkennen.
Beispielcode:
GLOBAL BUTTON_RIGHT% = 205
GLOBAL BUTTON_LEFT% = 203
GLOBAL BUTTON_DOWN% = 208
GLOBAL BUTTON_UP% = 200
GLOBAL BUTTON_FIRE% = 45// Key X
WHILE TRUE
IF KEY(BUTTON_RIGHT)
PRINT "Right", 100, 50
ENDIF
IF KEY(BUTTON_LEFT)
PRINT "Left", 100, 60
ENDIF
IF KEY(BUTTON_DOWN)
PRINT "Down", 100, 70
ENDIF
IF KEY(BUTTON_UP)
PRINT "Up", 100, 80
ENDIF
IF KEY(BUTTON_FIRE)
PRINT "Fire", 100, 100
ENDIF
SHOWSCREEN
WEND
Wenn ich die Tasten "Hoch", "Rechts" und "Fire" (=X) drücke, dann wird auch alles brav erkannt und der Text angezeigt.
Drücke ich "Runter", "Rechts" und dann auf "Fire" steht auf dem Bildschirm nur der Text "Left" und "Down".
Fire wird verschluckt. :(
Das Probelm tritt auch bei "Runter" und "Links" auf.
Ist das nicht komisch?
Nachtrag:
Es scheint an der Taste "X" zuliegen mit "Q" funktionierts. *noch komischer*
Viele Grüße und Danke
Stefan
hmmm...engl/amerikanischer Tastaturtreiber?
versuch mal, ob Fire erscheint wenn du die Taste "Y" drückst
Quote from: Kosta on 2010-Feb-12
hmmm...engl/amerikanischer Tastaturtreiber?
versuch mal, ob Fire erscheint wenn du die Taste "Y" drückst
Ich glaube nicht das es daran liegen könnte, da auf einer englischen Tastatur Z und Y vertauscht sind. Das X ist aber bei beiden gleich.
@gliep
Das hat jetzt nichts mit Deinem eigentlichen Problem zu tun, aber ich würde Dir vorschlagen die Tasten nicht als globale Variablen, sondern als Konstanten zu deklarieren.
kann keinen Fehler feststellen. Funktioniert bei mir in allen möglichen Variationen einwandfrei.
Tastatur defekt?
Hatte ich mal, als ich ein Glas Wasser über meine Tastatur verteilt hatte. Nach dem Trocknen gings zwar wieder, aber bei bestimmten Tasten wurden dann doch auch mal andere Tasten "simuliert" :)
Hallo,
danke für Eure Rückmeldungen.
Ich bin jetzt etwas schlauer. Das Verhalten scheint abhängig von der Hardware zu sein. Habe das Programm auf einem anderen Rechner ausprobiert und da klappt es einwandfrei.
Der Fehler taucht bei meinem Lenovo Netbook auf. Evtl. kann die Tastatur von dem Rechner gewisse Tastenkombination nicht "zurückgeben"?! Die Tastatur ist ansonst einwandfrei. Deutsches layout, und noch keine Berührung mit Wasser oder so.
Die Tasten "A" und "S" gehen auch. "D" wiederum will nicht. Ich nehme jetzt erst mal die Tasten die wollen.
Und Danke für den Tipp mit den Konstanten. Ich arbeite mich gerade erst in GL Basic ein und forste die Tutorials durch. Wie mache ich einen Variable konstant? "static final" habe ich nicht gefunden. :)
Viele Grüße
Stefan
bei Laptop-Tastaturen sind manche Tasten noch mit Sonderfunktionen belegt, die man mit der [Fn] Taste aktivieren kann. Sind diese Buchstaben evtl. damit belegt?
STATIC ist für Funktionen gedacht, damit damit deklarierte Variablen zwischen den Funktionsaufrufen ihren Wert behalten.
Für Konstanten kannst du CONSTANT verwenden, auch wenn dieser Befehl, glaube ich, noch nicht 100%ig funzt und auch bisher in der Hilfe noch nicht zu finden ist.