예제 #1
0
        /// <summary>
        /// Called on Awake after the singleton has been setup.
        /// </summary>
        protected override void GameSetup()
        {
#if GOOGLE_ADS
            if (!GameManager.Instance.IsUnlocked && !string.IsNullOrEmpty(AdmobUnitIdAndroid) && !string.IsNullOrEmpty(AdmobUnitIdIos))
            {
                Adverts = new AdMob(AdmobUnitIdAndroid, AdmobUnitIdIos);
                Adverts.HideBanner();
                Adverts.RequestBanner();
            }
#endif
        }
예제 #2
0
    protected void Start()
    {
        audioSource = GetComponent <AudioSource>();
        admob       = GameObject.Find("AdMob").GetComponent <AdMob>();
        videoPlayer = GameObject.Find("Video Player").GetComponent <VideoPlayer>();
        BGM         = GameObject.Find("BGM").GetComponent <AudioSource>();

        courseButtons    = new GameObject[theNumberOfCourses];
        admobBannerExist = false;
        canClick         = true; //初めはボタンをクリックできる状態にしておく

        /*バナー広告を最初の1回だけリクエストする*/
        if (!admobBannerExist)
        {
            admob.RequestBanner();
            admobBannerExist = true;
        }

        /*アプリ起動時のみオープニング動画を再生する*/
        if (moviePlay)
        {
            lastScreen = Screen.title;
            PlayOpeningMovie();
            moviePlay = false;

            /*デバッグ用*/
            //PlayerPrefs.SetInt("Course1".ToString(), 0);
            //for (int i = 1; i <= 15; i++) {
            //    /*15コースをクリア済みにしておく*/
            //    PlayerPrefs.SetInt("Course" + (i + 1).ToString(), 1);
            //}
        }
        else
        {
            BGM.mute = false;
            //BGM.Play();
            videoPlayer.Pause();
            initialMovieBackground.gameObject.SetActive(false);
        }

        Initialize();
    }
예제 #3
0
    /// <summary>
    /// 開始処理
    /// </summary>
    public void Start()
    {
        //AdMob表示
        adMob.RequestBanner();
        //保存データ初期化(デバッグ時使用)
//		PlayerPrefs.DeleteAll ();
        gameController.ClearScore();
        //ハイスコア表示
        highScoreLabel.text = "High Score : " + PlayerPrefs.GetFloat("HighScore").ToString("F1") + "m";
        //ステージ1をクリアしていたらステージ2を表示
        if (PlayerPrefs.GetInt("Stage") < 2)
        {
            Stage2Button.SetActive(false);
        }
        //ステージ2をクリアしていたらステージ3を表示
        if (PlayerPrefs.GetInt("Stage") < 3)
        {
            Stage3Button.SetActive(false);
        }
    }
예제 #4
0
    /// <summary>
    /// ゲームオーバー
    /// </summary>
    void GameOver()
    {
        //衝撃音ストップ
        audioSource.Stop();
        //Shareボタン表示
        ShareButton.gameObject.SetActive(true);
        //AdMob広告表示
        adMob.RequestBanner();
        //PauseButton非表示
        PauseButton.gameObject.SetActive(false);
        //ライフ減少
        life--;
        //ライフが残っている場合
        if (life >= 0)
        {
            //ステータス更新
            state = State.Ready;
            //ライフ表示更新
            lifePanel.UpdateLife(life);

            //blockタグが付いたObject(障害物)の情報を取得
            GameObject[] blocks = GameObject.FindGameObjectsWithTag("block");
            //FishObjectのX座標を取得
            int fishX = Mathf.RoundToInt(fish.transform.position.x);
            //障害物のXY座標を初期化
            int blockX;
            int blockY;
            foreach (GameObject block in blocks)
            {
                //障害物のX位置を取得
                blockX = Mathf.RoundToInt(block.transform.position.x);
                //FishObjectが死亡したX座標と、その1つ先にある障害物オブジェクトのX座標が同じ場合
                if ((fishX + 1) == blockX)
                {
                    //障害物のY座標を格納
                    Obstacles1.Add(Mathf.RoundToInt(block.transform.position.y));
                }
                //FishObjectが死亡したX座標と、その2つ先にある障害物オブジェクトのX座標が同じ場合
                if ((fishX + 2) == blockX)
                {
                    //障害物のY座標を格納
                    Obstacles2.Add(Mathf.RoundToInt(block.transform.position.y));
                }
            }
            //障害物のX座標を昇順で並び替え
            Obstacles1.Sort();
            Obstacles2.Sort();

            //FishObjectの位置を初期化
            int setY  = 0;
            int setY2 = 0;
            //障害物がない位置の取得フラグ
            bool isEmptyBlock = false;
            //一番下のY座標
            int i = -5;
            //最初に取得した障害物のY座標
            int originalObstacles = 0;
            //FishObjectが死亡したY座標の1つ先にある障害物オブジェクトのY座標を繰り返し、障害物が存在しないY座標を取得
            foreach (int list in Obstacles1)
            {
                if (i != -5)
                {
                    int differencePosition = Mathf.Abs(originalObstacles - list);
                    if (differencePosition > 3)
                    {
                        //1つ前に取得したY座標と今回取得したY座標が3つ以上空いている場合、空いている真ん中の座標をセット
                        setY         = Mathf.FloorToInt((differencePosition) / 2) + originalObstacles;
                        isEmptyBlock = true;
                        break;
                    }
                    else if (differencePosition > 2)
                    {
                        //1つ前に取得したY座標と今回取得したY座標が2つ以上空いている場合、空いている真ん中の座標をセット
                        setY2 = Mathf.FloorToInt((differencePosition) / 2) + originalObstacles;
                    }
                }
                originalObstacles = list;

                i++;
            }
            //3つ以上空いているY座標が取得できなかった場合
            if (!isEmptyBlock)
            {
                if (originalObstacles != 5)
                {
                    //Y座標がMaxの5でない場合、Maxと最初に取得した障害物のY座標を足したものの真ん中の座標をセット
                    setY = Mathf.FloorToInt((5 + originalObstacles) / 2);
                }
                else
                {
                    //Y座標がMaxの5の場合、2つ以上空いているY座標をセット
                    setY = setY2;
                }
            }
            foreach (int list in Obstacles2)
            {
                //2つ先のY座標の1つ下に障害物がある場合、セットしたY座標を加算
                if (list == (setY - 1))
                {
                    setY++;
                }
                //2つ先のY座標に障害物がある場合、セットしたY座標を加算
                if (list == setY)
                {
                    setY++;
                }
            }
            //セットしたY座標がMaxの5を超える場合、2つ以上空いているY座標をセット
            if (setY > 5)
            {
                setY = setY2;
            }
            //取得した障害物座標を初期化
            Obstacles1 = new List <int> ();
            Obstacles2 = new List <int> ();
            //ラベル更新
            StartButton.gameObject.SetActive(true);
            //スタートした際、障害物にすぐ当たらない(埋まらない)位置にFishObjectをセット
            fish.transform.position = new Vector3(fishX + 1, setY, 0);
            //動作OFF
            fish.InitParam(false);
            camera.SetIsPlay(false);
            fish.isDead = false;
            //時間停止
            Time.timeScale = 0;
            fish.Start();
        }
        else
        {
            //クリア音再生
            audioSource.clip = gameover;
            audioSource.Play();
            //ゲームオーバー
            //ステータス更新
            state = State.GameOver;
            //ラベル更新
            statusLabel.gameObject.SetActive(true);
            statusLabel.text = "GameOver...";
            ReStartButton.gameObject.SetActive(true);
            //ハイスコア更新
            if (PlayerPrefs.GetFloat("HighScore") < score)
            {
                UpdateHighScore();
            }
        }
        BackToTitleButton.gameObject.SetActive(true);
    }