0

私はゲームを作成しており、(ハードコーディングするのではなく) その場でエンティティを作成できるゲーム内エディターです。コンポーネント集約モデルを使用しているため、エンティティはコンポーネントのリストにすぎません。

コンポーネントのリストを取得または生成する最良の方法は何ですか? いくつかの巨大な registerAllComponents() メソッドなどで、可能なすべてのコンポーネントのエントリを手動で追加する必要はありません。

すべてのコンポーネントが基本Componentクラスから継承するという知識、またはおそらくカスタムメタタグを介して、リフレクションを使用して何とか考えていましたが、クラスまたはすべてから派生したすべてのクラスのリストを取得する方法を見つけることができませんでしたカスタム メタタグを持つクラス。

どのようなオプションが残っていますか?

ありがとう。

4

2 に答える 2

0

私が一度行ったプロジェクトでは、rubyスクリプトを使用して、特定のパッケージ内のすべてのクラスへの参照を含むASファイルを生成しました(それらがコンパイルに含まれていることを確認します)。flashは、それが含まれているファイルと同じ名前のクラスのみを許可するため、実際のコードを解析する必要がないことを考えると、非常に簡単です。

ファクトリクラスが後で使用できるように、辞書(または同様のもの)にエントリを追加することも簡単です。

(少なくともflashdevelopでは)コンパイル前にプログラムを実行することは可能であると私は信じているので、手作業を追加することはありません。

編集:デモンストレーションのために基本的なFlashDevelopプロジェクトを追加しました。ルビーがインストールされている必要があります。 http://dl.dropbox.com/u/340238/share/AutoGen.zip

于 2012-04-15T07:30:47.987 に答える