嘘バルズ構築記録#9
間が空いたのでコーディングする前に整理する。
マリガンの一連の処理が終わった後、先攻1ターン目開始時のResultがそれぞれに送られる。
ResultはPerformResult()という関数(コルーチン)で処理をする。
PerformResult()はResult内のLog配列に従って演出処理をする。
すべての演出が完了したら、Result内のBoardの状態とクライアント上の盤面状態を比較し、もし一致しなければクライアントの盤面を強制的にResultのBoardの状態に再構築する。
(演出処理は後回しなのでしばらくは強制再構築で更新する。)
ターンプレイヤーの場合はクライアントをPlayable状態にしてPerformResult()終了。プレイヤーの操作時に「サーバへ送信→Result待ち→PerformResult()」を実行する。
非ターンプレイヤーの場合は、PerformResult()の内部で相手の操作による結果を待ち、Resultが届いたらPreformResult()を新たに呼び出し、これまでのPerformResult()は終了する。(見た目は再帰っぽい)
パーツ制作その2
しばらく休んでいたのでリハビリも兼ねたパーツ制作。
左下と右上に表示されている「リーダー情報表示」を組み立てる。
アニメーション演出を考えるならいろいろ考慮しないといけないけど、とりあえず表示するだけならGodot標準のUI要素を適当に組み合わせて、カードと同じくSubViewport経由で板ポリに張り付けるだけ。
![](https://assets.st-note.com/img/1716330467700-mix55CUCjV.png)
HPバーはProgressBarを使って楽してる。
テンションゲージはColorRectをそれっぽく並べるだけの手抜き。
とりあえず簡易実装。HPが1/3以下?でオレンジになるのぐらいはやろうかと思ったが、微妙に面倒なのでとりあえずなし。 pic.twitter.com/2dltuYhtNL
— Juna (@Juna_idler) May 21, 2024
対戦シーン上でエディタから数値を弄って変化させている。
次回
クライアント側がそこそこ形になってきたので、テスト用のサーバ処理を作ってテストしたい。
この記事が気に入ったらサポートをしてみませんか?