SDL を使用してマウス イベントをポーリングする際に、少し奇妙な問題が発生しています。
if(event.type == SDL_MOUSEBUTTONDOWN) {
printf("click %d\n", event.button.button);
}
else if(event.type == SDL_MOUSEMOTION) {
printf("move %d\n", event.button.button);
}
マウスを動かしながらマウスの右ボタンをクリックしたままにすると、次のようになります。
click 3 // = SDL_BUTTON_RIGHT
move 4 // != SDL_BUTTON_RIGHT !
move 4
...
つまり、SDL_MOUSEBUTTONDOWNは、マウスの右ボタンのbutton.buttonを3に設定し、SDL_MOUSEMOTIONは4に設定しています。
なぜこれが起こっているのか誰にも分かりますか?