入力メソッドにポーリングを使用してゲームを開発しています。しかし、ゲームメニューやその他のUIコンポーネントをさらに深く掘り下げているので、おそらくイベントドリブンの入力が必要なことがわかりました。おそらく、UIにイベントドリブンを使用し、「world」入力をポーリングすることで、両方を持つこともできます。どうすればいいのか興味があります。
私はポーリングを次のように定義しています:更新ループごとに、どのキーが押されているか、マウスがどこにあるか、ボタンが押されているかを確認し、収集した情報に基づいてアクションを実行します。
イベント駆動型を定義しています:割り込みベースのイベント、イベントが発生し、割り込みがトリガーされ、イベントに基づいてコードブロックが実行される場合。
すべてのイベント駆動型、すべてのポーリングに行くのが最善だと思いますか、それとも両方の組み合わせが受け入れ可能ですか?どちらかの長所と短所がある場合は、それらをリストしてください。ありがとう。
編集
ゲームはJava / OpenGLベースであるため、Windows / Mac / Linuxにリリースされます。それをモバイルデバイスに拡張する可能性は低いです。ゲームはRTSスタイル、3人称3Dです。
編集2
私はこれを実装した方法にまだ完全に満足していませんが、私が向かっているのはUIでイベントをキャッチすることであり、イベントがUIコンポーネントのいずれかによって処理されない場合、イベントをピッキング/選択のための「世界」。何かのようなもの:
@Override
private boolean handleEvent(Event event) {
if(hud.handleEvent(event)) {
return true;
}
return WORLD.handleEvent(event);
}
この方法では、ボタンの背後にあるオブジェクトを選択するためにUIからクリックが漏れることはありません。
現在、私のカメラコントロールはまだポーリングに基づいており、今のところ機能しているようですが、後で更新する可能性があります。
すべての回答に感謝します。申し訳ありませんが、1つしか選択できません。