Scancode problem
Blitz3D Forums/Blitz3D Beginners Area/Scancode problem
| ||
| the following code checks through scancodes for specific key hits, it should also differentiate between capitals and normal For lettx.text_letter = Each text_letter If KeyDown(42) = False And KeyDown(54) = False If (KeyHit(lettx\scancode) = True And Len(lettx\symbol$) = 1) Notify lettx\symbol$ EndIf ElseIf KeyDown(42) = True Or KeyDown(54) = True If (KeyHit(lettx\scancode) = True And Len(lettx\caps_symbol$) = 1) Notify lettx\caps_symbol$ EndIf EndIf Next when first running, when i press a letter i get lowercase as expected. holding down shift gets capital letters. However, once i release the shift key i still get capitals (no caps lock isnt on). Any suggestions? |
| ||
Seems to be something with 'notify' as if I modify your code to this it works:
Graphics 800,600,32,2
SetBuffer FrontBuffer()
Repeat
If KeyDown(42) = False And KeyDown(54) = False
If (KeyHit(30) = True And Len("a") = 1)
Text 0,i, "a"
i=i+15
EndIf
ElseIf KeyDown(42) = True Or KeyDown(54) = True
If (KeyHit(30) = True And Len("A") = 1)
Text 0,i, "A"
i=i+15
EndIf
EndIf
Flip
Until KeyDown(1)
End
|
| ||
| Thx for reply Matty. I inserted flushkeys() after the notify command, must be something to do with the repeat key function that kicks in when holding keys down, most curious - and irritating. Notify does have an affect though. although it works fine without flushkeys in both b3d and b+ when using text |
| ||
| My guess is that Notify grabs focus and your program doesn't get the KeyUp events on the shift keys. |