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