0

だから、私は基本的なアクションを持つプレイヤークラスを持っています。ゲームプレイ中に、彼は新しい能力のロックを解除します。プレーヤー クラス内に新しいアクションを格納する方法がわかりません。正確に言うと、方法はわかっていますが、私の方法は面倒なので、コードをクリーンアップしたいと考えています。また、それらの能力の一部を敵に追加したいと考えています。つまり、すべてのゲーム エンティティ (壁を期待して、おそらく :D) には、エンティティの機能を拡張するメソッドを追加できるコレクションが必要です。どうやってこれを作るのですか?質問が抽象的すぎてすみません

4

1 に答える 1

2

アクションディクショナリを作成します。

public Dictionary<string,Action> NameActionDic = new Dictionary<string,Action>();

次に、次のようにデータを入力できます。

player.NameActionDic["jump"] = ()=>{ player.velocity.Y -= 5; };

そして、このように使用します:

if (KeyboardButtonPressed(Keys.ArrowUp))  // this is just an example
    player.NameActionDic["jump"]();

人口コードを周辺のどこかに配置するだけです(別voidのメソッド、おそらくプレーヤーのコンストラクター)。そうしないと、ラムダ式であるため、編集と続行の機能が妨げられます。

于 2013-01-27T15:31:33.503 に答える