私は自分のゲームのメニューシステムを作成しており、作成時にクリックイベントで実行する一連の命令(または関数)を渡すことができるようにボタンを作成しようとしています。Monogame/XNAクリック時にリスナーまたは関数を入力しますか?
Iは、Screen
をenum
パラメータを受け取るChangeScreen
と呼ばれる機能を有し、そしてIは次のように、イベントをリッスンボタンにこの機能を通過できるようにしたいので、(擬似コード着信):
menuButtons.Add(new MenuButton(ChangeScreen(Screen.Settings), texture, hovertexture, position));
次に、menuButtons
を列挙し、各ボタンのUpdate
およびDraw
メソッドを呼び出します。私はこのアイデアが大好きですが、具体的に各ボタンをチェックするif文を書くのではなく、MenuButton
にそれ自身の変数を割り当てるよりも比較的効率的です。
これは私が思っている唯一の使用例ではありません。それが可能であるならば、私のような方法で渡すことができるのが大好きだ:
menuButtons.Add(new MenuButton(new Method() { variableToSet = 1; }, texture, hovertexture, position));
私はAction
を使用してみましたが、私はちょうどこれを正しくやって行く方法を理解していません。すべて可能ですか、それとも同様の解決策がありますか?
UI要素が押されるたびに何らかのコールバックを作成する必要がありますか? –
はい、私は、MenuButtonの作成で全く新しい機能を渡すことができるようにしたいと考えています。 – zuddsy
あなたが求めていることは本当にはっきりしていないと思います。たぶんあなたの質問を書き換えようとすると、もっと答えが出るかもしれません。 – craftworkgames