Jedem User seine Tasten

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Hubsi

Betreff: Jedem User seine Tasten

BeitragDi, Okt 18, 2016 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß nicht recht obs das passende Forum ist, bedarfsweise bitte verschieben Very Happy

Ist jetzt noch kein aktuelles Problem, aber über kurz oder lang wirds eins werden: Bei meinen Spielen gebe ich dem Spieler grundsätzlich die Möglichkeit die Tasten zur Steuerung auf seine Vorlieben umzustellen. In Blitz3D (bzw. 2D oder Plus) ging das ja simpelst mit KeyDown(Variable_mit_dem_Scancode). In BlitzMax werden jetzt Konstanten verwendet und die nackte Zahl nicht mehr akzeptiert. Wie kann man dann das gestalten? Oder hab ich einfach ein Brett vor dem Kopf? Smile
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Mathias-Kwiatkowski

BeitragDi, Okt 18, 2016 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Key_left
Key_Up
Key_Down
Key_Right

also

Code: [AUSKLAPPEN]
If KeyDown(KEY_LEFT)
      
   End If
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

BladeRunner

Moderator

BeitragDi, Okt 18, 2016 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Konstanten sind genau das, also warum sollten die zugrunde liegenden Zahlen nicht mehr akzeptiert werden.
So entspricht KEY_DOWN zB einer 40, und wenn du KeyHit(40) abfragst wird eben auf KEY_DOWN geprüft.

Geht also.
Wenn dein Test fehlgeschlagen sein sollte: Wahrscheinlich hattest Du kein Graphics-Window erstellt, und ohne das gibt es kein Tastatur-Polling Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Xeres

Moderator

BeitragDi, Okt 18, 2016 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
@Hubsi: Du verwendest einfach wie bei BlitzBasic "KeyDown(Variable_mit_dem_Scancode)" und wenn der Nutzer andere Tasten verwenden möchte, musst die mit getKey (oder wie Funktion auch immer heisst) abfragen und speichern.
Dich muss gar nicht kümmern, was in den Konstanten steht. Smile

Edit:
Zur Anzeige wirds natürlich doch interessant:

Code: [AUSKLAPPEN]

Function getKeyName:String(keycode:Int)
   Select keycode
      Case KEY_UP
         Return "Pfeil hoch"
      Case KEY_DOWN
         Return "Pfeil runter"
      Default
         Return "??? ["+keycode+"]"
   End Select
End Function


Edit2
~VERSCHOBEN~

Scheint mir deutlich BlitzMax zu betreffen.

Midimaster

BeitragMi, Okt 19, 2016 8:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal ein Beispiel, wie man die Belegung durch den User ändern könnte:
BlitzMax: [AUSKLAPPEN]
SuperStrict
Graphics 800,600
Global X%=400, Y%=400
Global UserKeyDown%=KEY_DOWN
Global UserKEYUp%=KEY_UP
Global mode%=0
Repeat
Select Mode
Case 1
UserKeyUp=WaitKey()
mode=2
Case 2
UserKeyDown=WaitKey()
mode=0
Default
If KeyDown(UserKeyDown)
Y=Y+1
ElseIf KeyDown(UserKeyUp)
Y=Y-1
ElseIf KeyDown(KEY_F1)
Mode=1
EndIf
End Select

Cls
Select Mode
Case 1
DrawText "Press your Key for <UP>",0,0
Case 2
DrawText "Press your Key for <DOWN>",0,0
Case 0
DrawText "Use your Keys to move the point. Press F1 to define new keys",0,0
DrawOval X,Y,16,16
End Select
Flip 1
Until KeyHit(KEY_ESCAPE)
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

DAK

BeitragMi, Okt 19, 2016 11:51
Antworten mit Zitat
Benutzer-Profile anzeigen
@Hubsi:
Was du vielleicht meinst, ist, dass zwischen BlitzBasic und BlitzMax sich die Art der Codes verändert hat. In BlitzBasic wurden Scancodes verwendet, in BlitzMax sind es Keycodes. Der Unterschied ist, dass der Scancode die Position der Taste anzeigt, während der Keycode die Taste selbst identifiziert. Im Endeffekt tun sie beide fast das Gleiche, nur die Codes sind anders.

So war unter BB ESC noch 1, unter BM ist es aber 110.

Die Konstanten stehen nur für die Werte. Für welche kannst du in der Datei BlitzMax/mod/brl.mod/keycodes.mod/keycodes.bmk nachlesen.
Gewinner der 6. und der 68. BlitzCodeCompo

Hubsi

BeitragMi, Okt 19, 2016 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach herrje, wär so einfach gewesen Very Happy Ich hatte tatsächlich mit den Scancodes, wie ichs noch aus B3D kannte, herumexperimentiert. Das da kein Ergebniss rauskam ist mir jetzt auch logisch. Entschuldigt den doofen Beitrag Wink Und danke für die Augenöffnung Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group