使わずともゲームエンジンに敬意
Selector(選択肢における選択競合の回避)を作っていた筈だったのですが、
親としてResolver(競合選別)を設計中に、
これは競合入力の整合性確保(左右を同時押しした際に、どちらか一方に絞る等)に使えそうだなと、互換性等も考慮して寄り道したら・・・
案外、思った通りの挙動にならず、結構な試行錯誤。
仕舞には、不具合と思っていた部分にハードウェア側の仕様でコードの問題では無い所があったりと、
まあ、予想外に作業時間もっていかれました。
またしてもSelector制作が遠のきましたが、
競合入力を競合グループ単位でコントロールできる
InputResolverというクラスができました。
キー入力の情報をInputResolver入れて、グループを指定して取り出すと
グループ内の競合するキー入力を元に、一つに絞った状態で取り出せる仕様。
左右同時押しの優先は必ず左みたいな単純なswitchではなく、
競合するキーが複数押しされた際は、先に押されていた方が優先される作り。
この程度の事でも、挙動を安定させるにはしっかり設計を考えなければならず、ゲームエンジンの偉大さを感じます。