【完全保存版】Magic Block 入門3 JOINモジュールについて
この記事では、ゲームへの参加を管理する、「JOIN」モジュールについて解説します。
1 JOINモジュールの構成について
構成としては、「execute」関数が存在しています。
2 Contextについて
Contextについては、「Generate」モジュールの時と同じく、Gameコンポーネントを使用します。
3 引数について
引数としては、プレイヤーインデックスと参加しているか否かを渡します。
ちなみに、プレイヤーのインデックスについては参加人数が2人なので、0か1になります。
4 execute関数について
では、execute関数について見ていきましょう。
4ー1 アカウント情報の代入
まずは、「Generate」モジュールの時と同様、アカウントを可変参照して渡しています。
4ー2 ステータスの確認
次は、ステータスを確認しています。
「Lobby」でない場合はエラーにしています。
4ー3 公開鍵の設定
次に、アカウントの権限者の公開鍵を「payer」に設定しています。
次に、「game」構造体の「players」の指定されたインデックスを可変参照で「player」に渡しています。
「usize::from」を使用しているのは、Rustでは配列のインデックスには「usize」型が使われるためです。
4ー4 参加時の処理
次は参加時の処理についてです。
具体的には、こちらが押された時を想定しています。
すでに参加済みの場合はその旨を伝えてエラーとしています。
そうでない場合は、権限者を設定し、準備状態について、「true」に設定します。
4ー5 退出時の処理
次は、退出時の処理についてです。
このボタンが押された時のイメージです。
権限者がpayerではない場合はエラーとなります。
勝手に別の人に抜けさせられないようにですね。
問題ない場合は、authorityをデフォルトに設定し、準備状態は「false」にしています。
以上です。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊