SDL_GetKeyState无法检测到我测试过的几种日语键盘上各种按键的按键状态。特别是Y | (退格键旁边)和\ _(右移键旁边)以及空格键两侧的假名合成键。 Y |和\ _生成并返回字符,但是它们的按键状态没有注意到。
整理下来的代码。按键返回字符:
if (SDL_PollEvent(&ev))
switch(ev.type) {
case SDL_KEYDOWN:
ch = ev.key.keysym.unicode;
// Y| and \_ return characters
但是检测其状态无效。使用与此类似的代码显示对按下键无响应:
SDL_PumpEvents();
keystate = SDL_GetKeyState(NULL);
while(SDL_PollEvent(&ev))
{ if (ev.type == SDL_QUIT) exit(0); }
for (arg=0; arg<512; arg++)
{ printf("%2x ",keystate[arg]); }
是否可以调用“更深”级别来检测按键状态?还是SDL只能固定地绑定到作者曾经遇到过的那些键盘?