Exemplo n.º 1
0
 public void LoadtoNormalGame()
 {
     // ゲームモードをノーマルモードに
     SaveClass.SetIsClear(false);
     SaveClass.SetGameMode(true);
     SaveClass.SetGameOver(false);
     // Debug.Log("ノーマル");
     SceneManager.LoadScene("NormalGame");
 }
Exemplo n.º 2
0
    private void LateUpdate()
    {
        // カウントダウンが終わったら
        if (CountdownText.IsGameStart())
        {
            // モード共通失敗処理
            ToResult.GotoResultScene();

            // 条件を満たしたらResultへ遷移
            // ノーマルモードの場合
            if (SaveClass.GetGameMode())
            {
                if (BlockCount != DeleteCount)
                {
                    //埋まったレイの長さ
                    float      Check;
                    RaycastHit hit;

                    var BallVectorWork = BallVector;

                    // 物体に衝突したかどうか
                    // 衝突していた場合新しいBallVectorを取得
                    BallVector = Obj.Reflection(BallTrans, BallVector, out Check, out hit);

                    if (BallVector != BallVectorWork)
                    {
                        while (true)
                        {
                            //BallTrans.position = hit.point- BallVector;

                            var work = BallVector.normalized;
                            BallVectorWork = BallVector;
                            work          *= Check;
                            //Debug.Log("Check_:" + Check);

                            BallVector = Obj.Reflection(BallTrans, BallVector, out Check, out hit);

                            if (BallVector == BallVectorWork)
                            {
                                BallTrans.Translate(work);
                                break;
                            }
                        }
                    }
                    else
                    {
                        BallTrans.Translate(BallVector);
                    }
                }
                else
                {
                    // クリアフラグを立てて遷移
                    SaveClass.SetIsClear(true);
                    DeleteCount = 0;
                    ToResult.GotoResultScene();
                }
            }
            // Infiniteモードの場合
            // クリアはないのでひたすらに壁打ち
            // @todo 関数にできそう
            else
            {
                //埋まったレイの長さ
                float      Check;
                RaycastHit hit;

                var BallVectorWork = BallVector;

                // 物体に衝突したかどうか
                // 衝突していた場合新しいBallVectorを取得
                BallVector = Obj.Reflection(BallTrans, BallVector, out Check, out hit);

                if (BallVector != BallVectorWork)
                {
                    while (true)
                    {
                        //BallTrans.position = hit.point- BallVector;

                        var work = BallVector.normalized;
                        BallVectorWork = BallVector;
                        work          *= Check;
                        // Debug.Log("Check_:" + Check);

                        BallVector = Obj.Reflection(BallTrans, BallVector, out Check, out hit);

                        if (BallVector == BallVectorWork)
                        {
                            BallTrans.Translate(work);
                            break;
                        }
                    }
                }
                else
                {
                    BallTrans.Translate(BallVector);
                }



                //while (hit.point > BallVector.magnitude)
                //{
                //    var work = BallVector.normalized;
                //    work * Check
                //    BallVector = Obj.Reflection(BallTrans, BallVector, out Check);
                //}

                //// BallVectorの方向へ移動
                //BallTrans.Translate(BallVector);
            }
        }
    }