2
我有以下代码来测试2.0版SDL键盘输入:垃圾键盘信息2.0
while (SDL_PollEvent(&evnt))
{
if (evnt.type == SDL_KEYDOWN)
{
board = evnt.key;
key = board.keysym.sym;
switch (key)
{
case SDLK_a:
printf("a key!\n");
break;
case SDLK_d:
printf("d key!\n");
break;
default:
printf("Code: 0x%X\n", board.keysym.scancode);
printf("Name: %s\n", SDL_GetKeyName(key));
printf("Hex: 0x%02X\n", key);
printf("Uni: %c\n\n", (char)board.keysym.unicode);
}
} else if (evnt.type == SDL_QUIT)
running = false;
}
然而,以下为输出用于序列 'QWERTY':
Code: 0x460001
Name: ¶
Hex: 0x14
Uni:
Code: 0x460001
Name: →
Hex: 0x1A
Uni:
Code: 0x460001
Name: Backspace
Hex: 0x08
Uni:
Code: 0x460001
Name: §
Hex: 0x15
Uni:
Code: 0x460001
Name: ↨
Hex: 0x17
Uni:
Code: 0x460001
Name: ∟
Hex: 0x1C
Uni:
我只是在做一些愚蠢的事情吗?
此外,这不是我的程序的理想方法。我宁愿做
如果(ispressed [“K”])
{}
等等
有没有做这种形式的输入处理SDL的能力,或者我需要写我自己的班级来管理它?
运行圆圈并在键盘上敲打我的头足够长的时间后,我最终检查了代码并自己构建了sdl。我构建的版本按预期工作。去搞清楚。 – AGuyInAPlace 2012-02-13 05:36:40
你从哪里得到你的二进制文件?我在[主SDL页面](http://www.libsdl.org/hg.php)上看不到任何2.0二进制文件。 – genpfault 2012-02-13 14:52:07
一位绅士在论坛上发布了他在网站上的最新版本。我现在不记得这个名字。 – AGuyInAPlace 2012-02-14 22:12:02