GetChar() doesn't work for many keys on XNA target

Monkey Forums/Monkey Bug Reports/GetChar() doesn't work for many keys on XNA target

Rushino(Posted 2013) [#1]
Hi, in HTML5 GetChar() return normally the correct keycode related to the key pressed on a device. However on XNA it doesn't act like HTML5 do. It work for normal characters such A-Z 1-9 etc.. but doesn't for symbols like @,. etc. here we talk about the normal xna target for windows.

On HTML5 it work well for any key pressed. I am using v65. I am kind of stuck if i can't get this to work. :(


Rushino(Posted 2013) [#2]
Look like its an issue with XNA... which have a really BAD input support i guess this is a deadend. Mark do you think you can do something about this ?

(You can check the sample 'Mak/keyboardtest' to reproduce that bug)


Rushino(Posted 2013) [#3]
Any update on this ? This would be appreciated! Thanks.


marksibly(Posted 2013) [#4]
I'll have a look, but keyboard under XNA will always suck a bit as it only really supports raw keyup/keydown stuff and, unlike browsers etc, doesn't have access to the OS for converting key codes to unicode etc.

[edit]
I've looked at this a bit further, and properly supporting any arbitrary keyboard (ie: US/non-US etc) is gonna be a relatively big mission.

On the other hand, I can hack in a few more 'US keyboard only' keys quite easily, and will probably do so...

Any reason you can't use glfw for Windows?
[/edit]


Rushino(Posted 2013) [#5]
Yeah i figured out. Hehe. Well, at least ive got some kind of workaround for now.. i use KeyHit and KeyDown combinaison.. i also had to simulate the fast character delete stuff which also sucked. Anyway it look like XNA is getting abandonned.. so i believe the next target is now officially Win8 ?


marksibly(Posted 2013) [#6]
The current win8 target is 'windows store only', but the same d3d11/xaudio2 code probably be used for a more useful 'win8 desktop, but not the crappy ARM one' - target.


Rushino(Posted 2013) [#7]
The reason i can't use glfw is that i use WebSocket technologies for networking. I can't change that since all my backend is coded. I would need a websocket client for glfw.. which is quite hard since i do not know C++.