大規模なゲームで入力を管理するための標準的な手法はありますか。現在、私のプロジェクトでは、すべての入力処理は次のようにゲームループで行われます。
while(SDL_PollEvent(&event)){
switch(event.type){
case SDL_QUIT:
exit = 1;
break;
case SDL_KEYDOWN:
switch(event.key.keysym.sym){
case SDLK_c:
//do stuff
break;
}
break;
case SDL_MOUSEBUTTONDOWN:
switch(event.button.button){
case SDL_BUTTON_MIDDLE:
//do stuff
break;
}
}
break;
}
(私はSDLを使用していますが、メインプラクティスではライブラリとフレームワークも適用されると考えています)。大規模なプロジェクトでは、これは最善の解決策ではないようです。ユーザーが何を押したかを知りたいオブジェクトがいくつかある場合があるため、それらのオブジェクトが入力を処理する方が理にかなっています。ただし、イベントを取得すると、イベントバッファからプッシュされるため、別のオブジェクトがその入力を受け取らないため、すべてが入力を処理することはできません。これに対抗するために最も一般的に使用される方法は何ですか?