Keycodes By Numbers
BlitzMax Forums/BlitzMax Programming/Keycodes By Numbers
| ||
![]() Does someone have a list of all the raw keycodes for BlitzMAX ? Not the variables which are hardcoded such as key_space, key_a, etc. No, I want the decimal list from 1-255 where space is 32, "a" is 65, and "/" is 191. I can't find that in BlitzMAX help. Thanks in advance. |
| ||
| You can find a list of the decimal values in this code archive entry: http://www.blitzbasic.com/codearcs/codearcs.php?code=1340 |
| ||
Excellent, thank you, Zethrax ! Now I can write this:
' Small & Fast code to read and retrieve raw keystrokes
' Written by David W 12-14-15
Strict
Global i,kc,k$
Global rk$="1bes70f171f272f373f474f575f676f777f878f979f07af!7bf@300 311 322 333 344 355 366 377 388 399 bd- bb= 08bs24ho23en6fn/6an*6dn-c0` 09ta41a 42b 43c 44d 45e 46f 47g 48h 49i 4aj 4bk 4cl 4dm 4en 4fo 50p 51q 52r 53s 54t 55u 56v 57w 58x 59y 5az db[ dd] dc\ 2ede21pu24ho26up21pu6bn+ba; de' 0dcr22pd25lf0cn527rtbc, be. bf/ 23en28dn22pd2din20 "
Graphics 640,480
SetScale 5,5
Repeat
k$=""
For i=1 To Len(rk$)Step 4
kc=("$"+Mid$(rk$,i,2)).toint()
If KeyDown(kc)
k$=Trim$(Mid$(rk$,i+2,2))
If k$=""
k$=" "
EndIf
Exit
EndIf
Next
Cls
DrawText k$,50,50
Flip
Until k$="es"
I don't know if BlitzMAX is planning on making any upgrades in the future, but a way of reading a raw keystroke held that is automatically converted to its ASCII equivalent would make this code a lot easier and and the keycodes not appear so random. |
| ||
| Hi, you could have an array of all the ascii equilavents of keycodes for faster access. 'Pseudo code char:String = codes[keycode] -Henri |
| ||
That would work. Blitz could basically have an INKEY$ like regular basic has.
a$=inkey$()
if a$>""
print a$;
endif
|
| ||
| That would work. Blitz could basically have an INKEY$ like regular basic has. Function Inkey:String()
Return Chr(GetChar())
End Function |
| ||
| Wow, that does work, TomToad ! I did not know about that command, or in this case, function. It does seem to work with CTRL key codes too, such as CTRL Q to exit. For videogames I can see you would just want to read the raw arrow keys, but for normal keystrokes, your INKEY routine would be just fine and circumvents me from having to write a keyboard routine that includes shift and control. Still, you can't have a CTRL number, like for a hotkey interface. I may stick with my current keyboard routine, but it's nice to see for small projects there is a type of INKEY function. Thank you !
Graphics 1024,768
Local k$,i
SetScale 5,5
Repeat
Cls
k$=inkey$()
For i=0 To 3
If KeyDown(37+i)Then k$=Mid$("lfuprtdn",i*2+1,2)
Next
DrawText k$,50,50
Flip
Until k$=Chr$(17)Or k$=Chr$(27)
Function Inkey:String()
Return Chr(GetChar())
End Function
|
