示例#1
0
    public void Inverse(GameObject g)
    {
        if (!g.GetComponent <CRotateObject>().Get_isInverse() &&
            !g.GetComponent <CRotateObject>().Get_isInverse2())
        {
            // オブジェクトリストから削除
            int i;
            i = Get_iRanking(g);

            g.GetComponent <CRotateObject>().Set_isInverse(true);
            Accele(g);
            g.GetComponent <CRotateObject>().Set_isSort(true);

            // ���̃I�u�W�F�N�g����������ċl�߂�
            for (int j = i; j < gObjectList.Count;)
            {
                gObjectList[j].GetComponent <CRotateObject>().Set_isAccele(true);
                Accele(gObjectList[j]);
            }

            CRotateObject cs = g.GetComponent <CRotateObject>();
            cs.InvDegree();
        }
    }
示例#2
0
    // オブジェクト生成関数
    public void Create(int n)
    {
        // �I�u�W�F�N�g������_���ȏ����Ŕz�u
        List <int> nums = new List <int>();

        for (int i = 0; i < CLevelManager.Instance.Get_iObjectNum(); i++)
        {
            nums.Add(i);
        }

        // �d�����Ȃ��悤��
        for (int i = 0; i < CreateList.Count; i++)
        {
            nums.Remove((int)CreateList[i]);
        }

        for (int i = 0; i < gObjectList.Count; i++)
        {
            CRotateObject cro = gObjectList[i].GetComponent <CRotateObject>();
            nums.Remove((int)cro.Get_Shape());
        }

        for (int i = 0; i < gAcceleList.Count; i++)
        {
            CRotateObject cro = gAcceleList[i].GetComponent <CRotateObject>();
            nums.Remove((int)cro.Get_Shape());
        }

        // �������X�g�ɒlj�
        for (int i = 0; i < n; i++)
        {
            int rand = Random.Range(0, nums.Count);
            CreateList.Add((OBJECT_SHAPE)nums[rand]);
            nums.RemoveAt(rand);
        }
    }
示例#3
0
    // Update is called once per frame
    void Update()
    {
        // ポーズ画面の時にオブジェクトが生成しないような処理
        if (Mathf.Approximately(Time.timeScale, 0f))
        {
            return;
        }

        // オブジェクト生成
        if (CreateList.Count > 0)
        {
            if (iTimer >= 60)
            {
                // �d�Ȃ�Ȃ��悤�ɐ����ʒu�𒲐�
                float       sd  = 180.0f;
                float       rad = 9.0f;
                RotateState rs  = RotateState.OUTSIDE;
                if (gObjectList.Count > 0)
                {
                    float ld = gObjectList[gObjectList.Count - 1].GetComponent <CRotateObject>().Get_fDegree();

                    if (ld >= 190 && ld <= 520)
                    {
                        sd  = 180;
                        rad = fOutRadius;
                        rs  = RotateState.OUTSIDE;
                    }
                    else
                    {
                        sd  = 520;
                        rad = fInRadius;
                        rs  = RotateState.INSIDE;
                    }
                }
                Vector3 pos = new Vector3(rad * Mathf.Sin((sd + 180) * Mathf.Deg2Rad),
                                          0.0f,
                                          rad * Mathf.Cos((sd + 180) * Mathf.Deg2Rad));

                // ����
                GameObject tmp = Instantiate(gObjectSource[(int)CreateList[0]], pos,
                                             Quaternion.Euler(0, 0, 0));

                // �p�����[�^�Z�b�g
                CRotateObject cs = tmp.GetComponent <CRotateObject>();
                cs.Set_fDegree(sd);
                cs.Set_Shape(CreateList[0]);
                cs.Set_State(rs);

                tmp.GetComponent <CRotateObject>().Set_isAccele(true);

                CreateList.RemoveAt(0);

                gAcceleList.Add(tmp);

                iTimer = 0;
            }
            iTimer++;
        }

        if (GameObject.Find("PFB_Gate(Clone)") == null)
        {
            OBJECT_SHAPE first = COrderManager.Instance.Get_Order(0);
            Sort(first);
        }

        for (int i = 0; i < gObjectList.Count; i++)
        {
            gObjectList[i].GetComponent <CRotateObject>().UpdateObject();
        }
        for (int i = 0; i < gAcceleList.Count; i++)
        {
            gAcceleList[i].GetComponent <CRotateObject>().UpdateObject();
        }
    }
示例#4
0
    void Update()
    {
        // フレームごとに総合時間から減算
        fTotalTime += Time.deltaTime;

        // キャストした総合時間を秒数に代入
        iSecond = (int)fTotalTime;

        // テキストに秒数を表示
        //tTimer.text = iSecond.ToString("00");

        float gatetime = CLevelManager.Instance.Get_fGateTime();
        float rad      = fTotalTime / gatetime * 360;

        //Debug.Log(fRotationSpeed);

        gSecondHand.transform.eulerAngles = new Vector3(90.0f, 0.0f, -rad);
        //gSecondHand.transform.Rotate(0, 0, rad);

        //if (GameObject.Find(gGate.name + "(Clone)")) {
        //tTimer.text = "00";
        //}

        /* 下限値の設定
         * if (iSecond <= 0) {
         *  tTimer.text = "00";
         *  fTotalTime = 0.0f;
         * }*/

        // 時間が来たらまたはプレイヤsss.ーの意思で回収
        if (fTotalTime >= gatetime || Input.GetKeyDown(KeyCode.Return) || Input.GetButtonDown(stButton0Name))
        {
            // ゲートが二つ出るのを防ぐ
            if (GameObject.Find(gGate.name + "(Clone)") == null)
            {
                List <GameObject> list = csObjectManager.Get_gObjectList();

                if (list.Count > 0)
                {
                    OBJECT_SHAPE order = csOrderManager.Get_Order(0);

                    // 指令の最初のオブジェクトの位置にゲートを出す
                    GameObject first = null;

                    int i;
                    for (i = 0; i < list.Count; i++)
                    {
                        if (list[i].GetComponent <CRotateObject>().Get_Shape() == order)
                        {
                            first = list[i];
                            break;
                        }
                    }

                    if (i < list.Count)
                    {
                        float deg    = first.GetComponent <CRotateObject>().Get_fDegree();
                        float subdeg = first.GetComponent <CRotateObject>().Get_fDegreeSub();
                        deg += 30;
                        Vector3 pos;

                        if (deg >= 330 && deg <= 690)
                        {
                            subdeg = 180;
                        }
                        else
                        {
                            subdeg = 0.0f;
                        }
                        if (deg >= 330 && deg <= 690)
                        {
                            if (deg <= 400 && deg >= 330)
                            {
                                subdeg = 180 + (400 - deg) * 3.0f;
                            }
                        }
                        else
                        {
                            if (deg <= 760 && deg >= 690)
                            {
                                subdeg = (760 - deg) * 3.0f;
                            }
                        }

                        pos.x = 7 * Mathf.Sin((deg + 180) * Mathf.Deg2Rad)
                                + 2 * Mathf.Cos(subdeg * Mathf.Deg2Rad) * Mathf.Sin((deg + 180) * Mathf.Deg2Rad);

                        pos.y = 2 * Mathf.Sin(subdeg * Mathf.Deg2Rad);

                        pos.z = 7 * Mathf.Cos((deg + 180) * Mathf.Deg2Rad)
                                + 2 * Mathf.Cos(subdeg * Mathf.Deg2Rad) * Mathf.Cos((deg + 180) * Mathf.Deg2Rad);

                        GameObject gate = Instantiate(gGate, pos, Quaternion.Euler(0, 90, 0));

                        CGate         cs  = gate.GetComponent <CGate>();
                        CRotateObject cro = first.GetComponent <CRotateObject>();

                        if (deg >= 330 && deg <= 690)
                        {
                            cs.Set_State(RotateState.INSIDE);

                            if (deg <= 400 && deg >= 330)
                            {
                                cs.Set_isInverse(true);
                                cs.Set_fDegreeSub(180 + (400 - deg) * 3.0f);
                            }
                        }
                        else
                        {
                            cs.Set_State(RotateState.OUTSIDE);
                            if (deg <= 760 && deg >= 690)
                            {
                                cs.Set_isInverse(true);
                                cs.Set_fDegreeSub((760 - deg) * 3.0f);
                            }
                        }

                        cs.Set_fDegree(deg);
                    }
                }
            }


            fTotalTime = gatetime;
        }
    }
示例#5
0
    // Update is called once per frame
    void Update()
    {
        //ポーズ画面の時にオブジェクトが生成しないような処理
        if (Mathf.Approximately(Time.timeScale, 0f))
        {
            return;
        }

        // ���X�g�ɂ���I�u�W�F�N�g�𐶐�
        if (CreateList.Count > 0)
        {
            // ���̊Ԋu��J���Đ�������
            //if (iTimer >= fInterval / fAcceleSpeed + 30) {
            if (iTimer >= 60)
            {
                // �d�Ȃ�Ȃ��悤�ɐ����ʒu�𒲐�
                float       sd  = 0.0f;
                float       rad = 9.0f;
                RotateState rs  = RotateState.OUTSIDE;
                if (gObjectList.Count > 0)
                {
                    float ld = gObjectList[gObjectList.Count - 1].GetComponent <CRotateObject>().Get_fDegree();

                    /*if (ld >= 180 && ld <= 520) {
                     *  sd = 0;
                     *  rad = fOutRadius;
                     *  rs = RotateState.OUTSIDE;
                     * }
                     * else {
                     *  sd = 0;
                     *  rad = fInRadius;
                     *  rs = RotateState.INSIDE;
                     * }*/
                }
                Vector3 pos = new Vector3(rad * Mathf.Sin((sd + 180) * Mathf.Deg2Rad),
                                          0.0f,
                                          rad * Mathf.Cos((sd + 180) * Mathf.Deg2Rad));

                // ����
                GameObject tmp = Instantiate(gObjectSource[(int)CreateList[0]], pos,
                                             Quaternion.Euler(0, 0, 0));

                // �p�����[�^�Z�b�g
                CRotateObject cs = tmp.GetComponent <CRotateObject>();
                cs.Set_fSpeed(fAcceleSpeed);
                cs.Set_fDegree(sd);
                cs.Set_Shape(CreateList[0]);
                cs.Set_State(rs);

                Accele(tmp);
                CreateList.RemoveAt(0);

                iTimer = 0;
            }
            iTimer++;
        }
        else
        {
            // ����������Ƃ��̎��Ԃ�Z�k
            //iTimer = (int)(fInterval / fSpeed) + 10;
        }

        // �w�߂̍ŏ��̃I�u�W�F�N�g���擪�ɂȂ�悤��
        //if (gAcceleList.Count == 0 && CreateList.Count == 0) {
        if (GameObject.Find("PFB_Gate(Clone)") == null)
        {
            OBJECT_SHAPE first = COrderManager.Instance.Get_Order(0);
            Sort(first);
        }
        //}
    }