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
が、upボタンでありました。
それが私がこれを見たときです: https://wiki.libsdl.org/SDLKeycodeLookup。
矢印、機能、記号などを含む「特別な」キーのほとんどは、10 億単位の 10 進数表現を持っています。
単純なコードprintf("%d\n", e.key.keysym.sym);
をオンにしても、上ボタンで次のようになるとします。
1073741906
Segmentation fault: 11
エラーコードに違いがある場合、私はMacを使用しています。
では、SDL 2 にはどのような解決策があるのでしょうか?