0

私の質問は、表示オブジェクトの配列を処理するときのクラスの分離に関連しています。

main.asファイルでPacManゲームを作成していると仮定して、レベルのさまざまな部分(グラフィックス)を構築するためにconstructLevel.asを呼び出します。

ここで、pacmanが食べる「食べ物」が配列foodArrayにあるとしましょう。これで、mainが簡単にアクセスできるようにfoodArrayをmain.as内に保持するか、constructLevelにfoodArrayを含める方がよいでしょう。

最初のシーンリオでは、constructLevelは、適切な変数がmain.as(この場合はfoodArray)に存在する必要があります。ただし、他のケースでは、mainは常にconstructLevel.foodArrayを参照してデータを取得する必要があります。これは以前と同じ結合ですが、データはmainからcontructLevelにシフトしています。

3番目の解決策は、すべてのデータをカプセル化するblackBoardを作成することです。

この場合のベストプラクティスが何であるかはわかりません。

4

1 に答える 1

0

私はこのように行きます...クラスを作成します:LevelLevelConstructor。LevelConstructorがLevelオブジェクトを作成し、それらを返すようにしますしたがって、メインクラスから、次のような新しいレベルを作成します。

var newLevel: Level = levelConstructor.build(..);

この場合、newLevelオブジェクトにfoodArrayとレベルの他のすべての詳細があります。これにより、レベルデータとレベル構築アルゴリズムを分離します。levelConstructorオブジェクトには、ゲームに必要なレベルを構築するためのプロパティとメソッドがいくつでも含まれている場合があります。

于 2012-11-14T06:11:46.540 に答える