嘘バルズ構築記録#8

部品作り

クライアント側にサーバとのインターフェイスを組み込んでいきたいところだったが、そもそもクライアント側の実装が後回しだらけだったので、最低限必要なパーツを作っていく。

マリガン

処理の修正

ライバルズの相手のマリガン待機って交換してから待機だったんだな。
というわけで#6のマリガン操作を受け付ける処理を以下に修正。

  • サーバは、クライアントからのマリガン操作を受け付けて処理をし、送信者にのみ結果を返す。

  • 結果を受け取ったクライアントはマリガン処理を完了させ、サーバに準備完了を送って待機する。

  • サーバがAB両方の準備完了を受け取ったら、それぞれに初期盤面状態を送り、先攻1ターン目が始まる

クライアント実装

基本的に一本道の流れなのでawaitを使ったコルーチンで適当に実装していく。

スクリプト

大体この辺

https://github.com/Juna-Idler/Lievals/blob/22743c1b0a028bfc72edc3882561d8ec61259385/client/match_scene.gd#L28

https://github.com/Juna-Idler/Lievals/blob/22743c1b0a028bfc72edc3882561d8ec61259385/client/mulligan.gd

カード

今までは操作のみを目的として、表示能力は「そこにカードがある」以上のものを持たせていなかったので、カードの中身をちゃんと表示できるようにしていく。

実装方法は、2D描画でSubViewportに出力しその結果をテクスチャとして3Dのカードに張り付ける。レンダーターゲットテクスチャってやつ。
テクスチャの更新はカードの内容に変更があった時で毎フレームやる必要はないが、カード絵をアニメーションさせたい場合は工夫が必要そう。

ユニット

演出時に使われる3Dモデルは当然実装しない。
Godot上で作れる単純なモデルにカード絵を表示しただけのものに、スタッツ表示をビルボードで添える。ちなみにスタッツ表示もレンダーターゲットテクスチャ。
絵を用意するのが面倒なので、とりあえず名前もText3Dでビルボード表示しておく。
におうだちとかステルスとか死亡時効果とかの表示は後回し

イメージ

ようやくこれで組み込みに行けるか?

この記事が気に入ったらサポートをしてみませんか?