おそらくすべてのゲームで、開発者は何らかの方法で入力を処理する必要があります。それは、単純なキーボードイベントやマウスイベント、タッチイベント、または加速度計入力などです。この間接的な直接入力は、ゲーム内のオブジェクトに影響を与えます。同じ入力が異なるオブジェクトに影響する場合があります。今、私はこれをモデル化する方法について考えてきました。私がそれを見る方法には、2つの異なるアプローチがあります。
ゲームオブジェクト自体に処理させ、イベントをサブスクライブし、独自のメソッドを呼び出します。これには、ゲームオブジェクト自体が、どの入力がどのアクションを引き起こすかを決定できるという利点があります。欠点は、入力コードが「コア」ゲームオブジェクトコードで破損することです。また、ゲームオブジェクトはゲームの残りの状態を認識しないため、入力イベントに基づいて動作しない場合があります。これは正しくないようです。
一般的な入力コントローラーにすべての入力を処理させ、誰がどのイベントを処理するかを決定します。これは懸念をよりよく分離するように見えますが、入力コントローラークラスをゲームオブジェクトに緊密に結合します。誰がどのイベントをどの状態で受信したいかを知る必要があります。これも正しくないようです。
これを処理するためにどのような戦略を使用していますか?