libgdx を使用してゲームの開発を開始しました。最初の試行を開始したとき、libgdx について十分に知らなかったので、実際には 2 回目の試行です。最初の試行では、ロジックとテクスチャを含むアクター サブクラスがありました。その後、 Gustavo Steigerts のチュートリアルを読み始めたところ、彼がロジックとビューを分離しようとしていることがわかりました。私は同じことをしようとしましたが、ビューはサイズと位置に関する情報を持つ私のアクター サブクラスであるため、ロジックの一部である衝突検出を行う必要があります。また、Google で検索すると、Scene2d では MVC を実行できないことがわかります。MVC を使用して scene2d ゲームを実装する方法はありますか、それともこのパターンを無視して、アクターを拡張する 1 つのクラスでモデルとビューを使用する必要がありますか?
3677 次
1 に答える
3
これは主に意見に基づく質問ですが、scene2d と MVC パターンに関しては非常に頻繁に出てくる質問です。
一般に、Model-View-Controller パターンが試みているように、懸念事項を分離することは常に理にかなっています。Scene2dの場合、これはそれほど簡単ではありませActor
ん。act()
draw()
私の意見では、常にゲームの世界 (エンティティ) をありのままにモデル化するように努めるべきです。クラス/アクター/エンティティが存在する必要がありPlayer
ます。これは、エンティティが「パーツ」で構成され、それらが外部システムによって制御されるエンティティ システム フレームワークの反対です。Rocket
Bunny
ほとんどの場合、すべてをまとめておくと、必要なものがすべて 1 か所にあるため、柔軟性も高まります。ゲームプレイが変化する可能性があり、エンティティも変化する可能性があります。エンティティが大きくなりすぎることがわかった場合でも、それらを 、PlayerModel
、PlayerController
および のようにいくつかの部分に分割しPlayerRenderer
て、相互に参照する必要があり、act()
およびrender()
メソッドでそれらをトリガーできます。
于 2014-01-20T16:19:34.723 に答える