示例#1
0
    // 指定したオブジェクトを先頭に
    public void Sort(OBJECT_SHAPE first)
    {
        // �擪�ɂ���I�u�W�F�N�g��index�擾
        int        firstid  = 0;
        GameObject firstobj = null;

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

        if (firstid == 0)
        {
            return;
        }

        // �ז��ȃI�u�W�F�N�g������
        for (int i = 0; i < firstid; i++)
        {
            GameObject g = gObjectList[0];
            g.GetComponent <CRotateObject>().Set_isAccele(true);
            Accele(g);
        }
    }
示例#2
0
    // Start is called before the first frame update
    void Start()
    {
        COrderManager.Instance.CreateOrder(Level[iLevel].iOrderNum);
        CClearLampManager.Instance.CreateLamp(Level[iLevel].iOrderNum);

        // オブジェクト展開
        OBJECT_SHAPE first = COrderManager.Instance.Get_Order(0);

        CObjectManager.Instance.AddCreateList(first);
        CObjectManager.Instance.Create(Level[iLevel].iObjectNum - 1);

        // タイマーゲット
        gTimer = GameObject.Find("PFB_Number");

        gScore = GameObject.Find("PFB_ScoreObj");
        gScore.GetComponent <CScore>().Set_iScoreParam(Level[iLevel].iGoal);

        fStartTime = gTimer.GetComponent <CNumberManager>().Get_fTime();
    }
示例#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
 public void AddCreateList(OBJECT_SHAPE first)
 {
     CreateList.Add(first);
 }
示例#5
0
 // 形状setter
 public void Set_Shape(OBJECT_SHAPE s)
 {
     Shape = s;
 }
示例#6
0
    void OnTriggerEnter(Collider col)
    {
        // �ʉ߃I�u�W�F�N�g����
        if (col.gameObject.tag == "RotateObject")
        {
            GetComponent <CCreateEffect>().CreateEffect();

            OBJECT_SHAPE order = csOrderManager.Get_Order(iPassNum);

            // �w�߂ƈ�v
            if (order == col.gameObject.GetComponent <CRotateObject>().Get_Shape())
            {
                iMatchNum++;
                CClearLampManager.Instance.Lighting(iPassNum, Color.green);
            }
            else
            {
                CClearLampManager.Instance.Lighting(iPassNum, Color.red);
            }

            // �ʉ߂����I�u�W�F�N�g��폜
            CObjectManager.Instance.Remove(col.gameObject);
            Destroy(col.gameObject);
            //Debug.Log("hit");

            iPassNum++;

            int ordernum = csOrderManager.Get_iOrderNum();

            // �w�ߐ��̃I�u�W�F�N�g���ʉ߂����烊�Z�b�g
            if (iPassNum == ordernum)
            {
                if (iMatchNum == ordernum)
                {
                    // �N���A�X�^���v����
                    //Instantiate(gClear, new Vector3(20, 0, -10 + iClearNum * 5),
                    //    Quaternion.Euler(0, 180, 0));

                    //========== 2021/5/09
                    // �X�R�A��L�^����̂ɕK�v�Ȃ̂ő����܂����@by���X��
                    CScore.AddScore();
                    CCreateTrail.Create();
                    //-- 2021.5.15�lj� sasaki
                    gPanelGreen.SetActive(true);

                    //Debug.Log("SE!!");
                    aAudioSourceGreen.PlayOneShot(aSEClear);

                    CLevelManager.Instance.UpdateLevel();
                    // �w�ߐ���
                    csOrderManager.CreateOrder(CLevelManager.Instance.Get_iOrderNum());
                    CClearLampManager.Instance.CreateLamp(CLevelManager.Instance.Get_iOrderNum());
                    iClearNum++;
                }
                else
                {
                    //-- 2021.5.15�lj� sasaki
                    gPanelRed.SetActive(true);

                    //Debug.Log("SE!!");
                    aAudioSourceRed.PlayOneShot(aSEMiss);
                }
                // �V�����I�u�W�F�N�g����
                CObjectManager.Instance.Create(ordernum);
                CClearLampManager.Instance.LightingOff();

                csGateTimerController.Reset();
                gGateTimerController.transform.LookAt(new Vector3(0, 0, 10));
                Destroy(this.gameObject);
            }
        }
    }
示例#7
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;
        }
    }
示例#8
0
文件: CGate.cs 项目: wataru299/-2021
    void OnTriggerEnter(Collider col)
    {
        // �ʉ߃I�u�W�F�N�g����
        if (col.gameObject.tag == "RotateObject")
        {
            GetComponent <CCreateEffect>().CreateEffect();

            GameObject   lamp  = csOrderManager.Get_gClearLamp(iPassNum);
            OBJECT_SHAPE order = csOrderManager.Get_Order(iPassNum);

            // �w�߂ƈ�v
            if (order == col.gameObject.GetComponent <CRotateObject>().Get_Shape())
            {
                iMatchNum++;
                lamp.GetComponent <Renderer>().material.color = Color.green;
            }
            else
            {
                lamp.GetComponent <Renderer>().material.color = Color.red;
            }

            // �ʉ߂����I�u�W�F�N�g��폜
            CObjectManager.Instance.Remove(col.gameObject);
            CObjectManager.Instance.AcceleRemove(col.gameObject);
            Destroy(col.gameObject);
            Debug.Log("hit");

            iPassNum++;

            int ordernum = csOrderManager.Get_iOrderNum();

            // �w�ߐ��̃I�u�W�F�N�g���ʉ߂����烊�Z�b�g
            if (iPassNum == ordernum)
            {
                if (iMatchNum == ordernum)
                {
                    // �N���A�X�^���v����
                    //Instantiate(gClear, new Vector3(20, 0, -10 + iClearNum * 5),
                    //    Quaternion.Euler(0, 180, 0));

                    //========== 2021/5/09
                    // �X�R�A��L�^����̂ɕK�v�Ȃ̂ő����܂����@by���X��
                    //CScore.AddScore();
                    CCreateTrail.Create();
                    //-- 2021.5.15�lj� sasaki
                    gPanelGreen.SetActive(true);

                    // �w�ߐ���
                    csOrderManager.CreateOrder(3);
                    iClearNum++;
                }
                else
                {
                    for (int i = 0; i < ordernum; i++)
                    {
                        GameObject l = csOrderManager.Get_gClearLamp(i);
                        l.GetComponent <Renderer>().material.color = Color.white;
                    }
                    //-- 2021.5.15�lj� sasaki
                    gPanelRed.SetActive(true);
                }
                // �V�����I�u�W�F�N�g����
                CObjectManager.Instance.Create(3);

                csGateTimerController.Reset();
                gGateTimerController.transform.LookAt(new Vector3(0, 0, 10));
                Destroy(this.gameObject);
            }
        }
    }
示例#9
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);
        }
        //}
    }