虽然寻找了检测在SDL一次2多个密钥的方法,我碰到这段代码来找SDL的1.x:SDL_Keycodes太大,无法存储
//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实现它,一个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中有什么解决方案?
你可以使用'std :: map',这样你就不会遇到这个问题。具体而言,我不认为SDL2中有很多可以帮助你。 – olevegard
@olevegard完美!你介意将此作为答案吗? –