3

libgdx を使用してゲームの開発を開始しました。最初の試行を開始したとき、libgdx について十分に知らなかったので、実際には 2 回目の試行です。最初の試行では、ロジックとテクスチャを含むアクター サブクラスがありました。その後、 Gustavo Steigerts のチュートリアルを読み始めたところ、彼がロジックとビューを分離しようとしていることがわかりました。私は同じことをしようとしましたが、ビューはサイズと位置に関する情報を持つ私のアクター サブクラスであるため、ロジックの一部である衝突検出を行う必要があります。また、Google で検索すると、Scene2d では MVC を実行できないことがわかります。MVC を使用して scene2d ゲームを実装する方法はありますか、それともこのパターンを無視して、アクターを拡張する 1 つのクラスでモデルとビューを使用する必要がありますか?

4

1 に答える 1

3

これは主に意見に基づく質問ですが、scene2d と MVC パターンに関しては非常に頻繁に出てくる質問です。

一般に、Model-View-Controller パターンが試みているように、懸念事項を分離することは常に理にかなっています。Scene2dの場合、これはそれほど簡単ではありませActorん。act()draw()

私の意見では、常にゲームの世界 (エンティティ) をありのままにモデル化するように努めるべきです。クラス/アクター/エンティティが存在する必要がありPlayerます。これは、エンティティが「パーツ」で構成され、それらが外部システムによって制御されるエンティティ システム フレームワークの反対です。RocketBunny

ほとんどの場合、すべてをまとめておくと、必要なものがすべて 1 か所にあるため、柔軟性も高まります。ゲームプレイが変化する可能性があり、エンティティも変化する可能性があります。エンティティが大きくなりすぎることがわかった場合でも、それらを 、PlayerModelPlayerControllerおよび のようにいくつかの部分に分割しPlayerRendererて、相互に参照する必要があり、act()およびrender()メソッドでそれらをトリガーできます。

于 2014-01-20T16:19:34.723 に答える