音無サノトの空想録

ゆるい漫画を描いています

【ゲーム制作】2020.06.14 進捗(初期ステージ作成)

どうも音無サノトです。

iPhone向けのゲームアプリ開発を行っております。

今日もちょっとずつ制作です。

 

今日の成果

  • アイテム取得数の表示
  • ゲームオーバー/ゲームクリアの実装
  • ステージ作成

 

作業ログ

 今日はボール転がしのゲームを拡張していこうと思います。

 

まずはアイテムの取得数を表示。

こちらの記事を参考に実装します。

www.otonasisanoto.com

 

こんな感じです。

 

次はボールがステージから落下した際、ゲームオーバーになるという処理を実装します。

 

空のゲームオブジェクトを追加しBox Colliderを追加します。

ステージの下の方に大きめのサイズで調整。

Is Triggerにチェックを入れて、このラインにボールが衝突した際にゲームオーバーになるようにします。

f:id:otonasisanoto:20200614142111p:plain

 

ゲームオーバーを表示するテキストも追加しておきます。

f:id:otonasisanoto:20200614143534p:plain

 

スクリプトの方ではゲームスタート時にはゲームオーバーのテキストを非表示にしておきます。

衝突判定時に表示してゲームシーンをストップさせます。

以下の処理をPlayerに追加。

    // オブジェクト衝突時の処理
    void OnTriggerEnter(Collider other)
    {
        // ポイント獲得時
        if (other.gameObject.CompareTag("Point"))
        {
            other.gameObject.SetActive(false);
            pointCount++;
            SetPointCountText();
        }

        // ゲームオーバー時
        if(other.gameObject.CompareTag("Gameover"))
        {
            gameoverText.gameObject.SetActive(true);
            Time.timeScale = 0; // ゲームの停止(Update関数内など止まらないところもある)
        }
    }

 

次にゲームクリア時の処理を実装します。

ゲームオーバーの時と同じようにテキストを追加しておきます。

ステージ上のポイントを全て取得したらゲームクリアとします。

 

Start関数内でポイントになるアイテム数がいくつあるかを取得しておきます。

void Start()
    {
        rb = GetComponent<Rigidbody>();
        
        pointCount = 0;
        SetPointCountText();

        gameoverText.gameObject.SetActive(false);

        gameclearText.gameObject.SetActive(false);

        pointMax = GameObject.Find("Points").transform.childCount; // アイテム数を取得
    }

 

アイテム取得時のポイント加算処理内に全てのアイテム取得していた場合、ゲームクリアとなる処理を追加します。

        // ポイント獲得時
        if (other.gameObject.CompareTag("Point"))
        {
            other.gameObject.SetActive(false);
            pointCount++;
            SetPointCountText();

            // ゲームクリア時
            if(pointCount >= pointMax)
            {
                gameclearText.gameObject.SetActive(true);
                Time.timeScale = 0; // ゲームの停止(Update関数内など止まらないところもある)
            }
        }

 

実行するとこんな感じ。

 

次に簡単なステージを制作してゲームぽくしていきます。

 

本日は以上です。最後まで読んでいただきありがとうございました!