実際のゲーム エンジン/ロジック コードからレンダリング コードを分離する最善の方法は何ですか? そして、それらを分離することは良い考えですか?
Knightというゲームオブジェクトがあるとしましょう。騎士は、ユーザーが見るために画面にレンダリングする必要があります。現在、2 つの選択肢が残されています。呼び出し可能なメソッドを Knight に与えるか、Render/Draw
すべての Knight のレンダリングを処理するレンダラー クラスを作成します。
2 つが分離されているシナリオでは、騎士は彼をレンダリングするために必要なすべての情報を保持する必要がありますか、それとも分離する必要がありますか?
最後に作成したプロジェクトでは、オブジェクトをレンダリングするために必要なすべての情報をオブジェクト自体の内部に格納することにしましたが、実際にその情報を読み取ってオブジェクトをレンダリングする別のコンポーネントがありました。オブジェクトには、サイズ、回転、スケール、現在再生中のアニメーションなどの情報が含まれ、これに基づいてレンダラー オブジェクトが画面を構成します。
XNA などのフレームワークは、オブジェクトとレンダリングを結合することは良い考えだと考えているようですが、特定のレンダリング フレームワークに縛られることを恐れていますが、個別のレンダリング コンポーネントを構築すると、いつでもフレームワークを変更する自由度が高くなります。