Example #1
0
    // Update is called once per frame
    void Update()
    {
        // スタート処理
        if (isStarting)
        {
            if (gameType < 2)
            {
                //さいころをいくつか追加
                for (int i = 0; i < initDicesNum; i++)
                {
                    randomDiceGenerate();
                }
            }
            isStarting = false;

            if (gameType == 1)
            {
                Time.timeScale = 0f;
            }
        }



        int flick = Puni(); //ぷに検知

        // キー入力一括制御
        if (isRotate_dice == false && isRotate_charactor == false && isGameovered == false)
        {
            if (Input.GetKey(KeyCode.RightArrow) || flick == 2)
            {
                if (Dice && objDiceController.SetTargetPosition(2))
                {
                    VanishDice(objDiceController.X, objDiceController.Z);
                }
                objAquiController.SetTargetPosition(2);
            }
            else if (Input.GetKey(KeyCode.LeftArrow) || flick == 0)
            {
                if (Dice && objDiceController.SetTargetPosition(0))
                {
                    VanishDice(objDiceController.X, objDiceController.Z);
                }
                objAquiController.SetTargetPosition(0);
            }
            else if (Input.GetKey(KeyCode.UpArrow) || flick == 1)
            {
                if (Dice && objDiceController.SetTargetPosition(1))
                {
                    VanishDice(objDiceController.X, objDiceController.Z);
                }
                objAquiController.SetTargetPosition(1);
            }
            else if (Input.GetKey(KeyCode.DownArrow) || flick == 3)
            {
                if (Dice && objDiceController.SetTargetPosition(3))
                {
                    VanishDice(objDiceController.X, objDiceController.Z);
                }
                objAquiController.SetTargetPosition(3);
            }
            else if (Input.GetKey(KeyCode.K))
            {
                score += 1000;
            }
            Debug.Log("board[" + objAquiController.x.ToString() + "," + objAquiController.z.ToString() + "]=" + board[objAquiController.x, objAquiController.z].ToString());


            if (objAquiController.x != objDiceController.X || objAquiController.z != objDiceController.Z)
            {
                if (board[objAquiController.x, objAquiController.z] != -1) // 移動先にサイコロが存在するならば
                {
                    Dice = dices[board[objAquiController.x, objAquiController.z]];
                    objDiceController            = Dice.GetComponent <DiceController>();
                    objDiceController.isSelected = true; //選択
                }
            }
        }


        timeElapsed += Time.deltaTime;

        if (gameType != 2)
        {
            if (gameType == 0)
            {     //ソロモードの速さ
                if (level > 21)
                { //現状レベル21で速さは打ち止め
                    if (timeElapsed >= (1.2 + (0.3 * Mathf.Sin(Mathf.PI * level / 4))))
                    {
                        randomDiceGenerate();
                        timeElapsed = 0.0f;
                    }
                }
                // さいころ追加 スタートは3秒ごと、ゴールは1.25秒ごと
                else if (timeElapsed >= (3f - (1 / 12f) * level)) //1/12は(初速-最高速)/レベルで求められた
                {
                    randomDiceGenerate();
                    timeElapsed = 0.0f;
                }
            }
            if (gameType == 1)
            {     //対戦モードの速さ
                if (level > 21)
                { //現状レベル21で速さは打ち止め
                    if (timeElapsed >= 1.5)
                    {
                        randomDiceGenerate();
                        timeElapsed = 0.0f;
                    }
                }
                // さいころ追加 スタートは3.5秒ごと、ゴールは1.5秒ごと
                else if (timeElapsed >= (3.5f - (2 / 21f) * level))
                {
                    randomDiceGenerate();
                    timeElapsed = 0.0f;
                }
            }
        }
    }