ほっとぴぴ

自作アプリ開発の様子をまったり記録しています

時間経過で、ターンを自動終了させる

こんにちは。ななつきです。
予告通り 時間経過で、ターンを自動終了させる を実装しました!

画面の様子

じゃんけんのとき

カード(?)ゲームのとき

どんな実装か

色は変更していますが、前回の HPバーを表示 のバーを使い回しました。this.progress が使い回したバーです。

修正を加えたのは じゃんけんに満足できないので殴り合いするゲーム で追加した CardGameManager です。Update でバーの値を更新し、OnTurnTimeEnds でタイマーが終了したときに次のターンを強制的に開始するようにしました。じゃんけんも大体同じ実装です。

ただ、この実装だとお互いが放置すると永遠にゲームが終わらないです。いつかは自動でカードを出すという実装をしようと思っていますが、カードゲーム部分が実装できてから対応する予定です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class CardGameManager : MonoBehaviourPunCallbacks, IPunTurnManagerCallbacks
{
    private float turnDuration = 10.0f;

    private void Start()
    {
        // 省略
        this.progress.maxValue = turnDuration;
        this.progress.value = turnDuration;
    }

    private void Update()
    {
        if (this.turnManager.Turn > 0)
        {
            this.progress.value = this.turnManager.RemainingSecondsInTurn;
        }
    }

    // タイマー終了
    public void OnTurnTimeEnds(int turn)
    {
        // 強制的に次のターンを開始
        if (PhotonNetwork.IsMasterClient)
        {
            this.turnManager.BeginTurn();
        }
    }

    // その他function省略
}

次回予告

次回からは、カードゲームらしい実装を進めていきたいと思います。一度、どういうゲームを作ろうと思っているのか。どんなタスクがあるのかを書き出す記事を挟もうと思います。 では、次回よろしくおねがいします。


Share