예제 #1
0
    // Update is called once per frame
    void Update()
    {
        // ゲーム中なら操作可能
        if (isActive == true)
        {
            // fieldに次のミノを生成する
            MakeMino();

            // プレイヤーの入力処理
            Hold();     // Q           ホールド…現在のミノをストックし、必要な時に取り出すことができる
            Move();     // W, A, S, D ミノの移動
            Rotate();   // ←, →     ミノの回転
        }

        //// 自由落下
        //time += Time.deltaTime;
        //if (time >= dropInterval)
        //{
        //    move.MoveMino(field, minoArray, ref minoPosX, ref minoPosY, 0, -1, currentMino);
        //    time = 0;
        //    Script_render.DeleteMino();
        //    Script_render.DrawMino(minoPosX, minoPosY, ref minoArray, currentMino);
        //}

        // ブロック設置の条件①,移動回数制限
        if (setCount >= 15)
        {
            if (isGround == true)
            {
                rockDown.SetMino(field);
                for (int i = 0; i < 20; i++)
                {
                    Script_lineClear.LineDelete(field, ref score);
                }
                setCount = 0;
                makeMino = true;
                isGround = false;
                isHold   = false;

                Script_render.Delete();
                Script_render.DrawField(field);
            }
        }

        // ブロック設置の条件②,地面についてる間の秒数制限
        if (isGround == true)
        {
            time2 += Time.deltaTime;
            if (time2 >= setLimit)
            {
                rockDown.SetMino(field);
                setCount = 0;
                for (int i = 0; i < 20; i++)
                {
                    Script_lineClear.LineDelete(field, ref score);
                }
                makeMino = true;
                time2    = 0;
                isGround = false;
                isHold   = false;

                Script_render.Delete();
                Script_render.DrawField(field);
            }
        }
    }