在 SDL 2 中搜索同时检测多个键的方法时,我遇到了 SDL 1.x 的这段代码:
//author: Rob Loach
// Global key buffer
bool keys[256];
while(SDL_PollEvent(&mainEvent))
{
if(mainEvent.type == SDL_KEYDOWN)
{
keys[mainEvent.key.keysym.sym] = true;
}
else if(mainEvent.type == SDL_KEYUP)
{
keys[mainEvent.key.keysym.sym] = false;
}
}
我尝试在 SDL2 和 a 中实现它std::array<bool, 256>
,但我Segmentation fault: 11
使用了向上按钮。
那是我看到这个的时候:https ://wiki.libsdl.org/SDLKeycodeLookup 。
大多数“特殊”键,包括箭头、功能、符号等,都有十亿的十进制表示。
即使打开了简单的代码printf("%d\n", e.key.keysym.sym);
,也可以说向上按钮给出:
1073741906
Segmentation fault: 11
我在 Mac 上,如果它与错误代码有任何区别。
那么,SDL 2 中有哪些解决方案呢?