Example #1
0
    IEnumerator Diswave4()//第四关
    {
        yield return(new WaitForSeconds(4));

        obj_Enemy = new Enemy_Object[10];
        for (int i = 0; i < 10; i++)
        {
            obj_Enemy[i] = new Enemy_Object();
        }
        Enemy_Dis = new NumDis[1];
        Enemy_Dis[0].prefabindex = 0;
        Enemy_Dis[0].EnemyAmount = 10;
        InitialEnemy(Enemy_Dis);//生成对应敌军,即10个0号预制体
        for (int i = 9; i >= 0; i--)
        {
            obj_Enemy[i].m_obj.transform.position = new Vector3(tb_Boundary.xMax - i * (tb_Boundary.xLength / 9), 0, tb_Boundary.zMax);
            obj_Enemy[i].m_obj.GetComponent <Done_Mover>().speed *= 1 + 0.3f * i;//第二波 把敌人速依次增加
        }
        #region 等待进入下个波次
        weave_StartFlag = 0;
        log("waitnext");
        yield return(new WaitUntil(() => weave_StartFlag == 1)); //判断波次是否结束

        log("startnext");
        #endregion
        obj_Enemy = new Enemy_Object[12];
        for (int i = 0; i < 12; i++)
        {
            obj_Enemy[i] = new Enemy_Object();
        }
        Enemy_Dis = new NumDis[1];
        Enemy_Dis[0].prefabindex = 0;
        Enemy_Dis[0].EnemyAmount = 11;
        InitialEnemy(Enemy_Dis);//生成对应敌军,即11个0号预制体 1个1号预制体
        for (int i = 9; i >= 0; i--)
        {
            obj_Enemy[i].m_obj.transform.position = new Vector3(tb_Boundary.xMax - i * (tb_Boundary.xLength / 9), 0, tb_Boundary.zMax);
            obj_Enemy[i].m_obj.GetComponent <Done_Mover>().speed *= 3f;//第二波 11个加速陨石
        }
        GameObject       gm = Enemy_Prefab[1];
        EnemyMoveControl em = gm.GetComponent <EnemyMoveControl>();
        em.MovePart_LeftTop     = EnemyBoundary.bd_L1;
        em.MovePart_RightBottom = EnemyBoundary.bd_R2;
        em.Movelevel            = 0;
        em.moveSpeed            = -8f;
        obj_Enemy[11].m_obj     = Instantiate(gm, new Vector3(tb_Boundary.xMin + tb_Boundary.xLength / 2, 0, tb_Boundary.zMax),
                                              Quaternion.Euler(new Vector3(0, 0, 0)));
        obj_Enemy[11].Alive = 1;

        #region 等待进入下个波次
        weave_StartFlag = 0;
        log("waitnext");
        yield return(new WaitUntil(() => weave_StartFlag == 1)); //判断波次是否结束

        log("startnext");
        #endregion
        //显示通关面板
        m_control.DisEnd(obj_config.int_NowMapLevel);//0失败 >1成功 表示通过的关卡等级
    }
Example #2
0
    IEnumerator Diswave15()
    {
        int int_wave = 1;

        yield return(new WaitForSeconds(4));

        while (true)
        {
            Debug.Log("start 15 wave");
            m_control.PostNewTopMessage("第 " + int_wave + " 波");
            int_wave++;
            int t_num = Random.Range(5, 10);
            obj_Enemy = new Enemy_Object[t_num];
            for (int i = 0; i < t_num; i++)
            {
                obj_Enemy[i] = new Enemy_Object();
            }
            for (int i = 0; i < t_num; i++)
            {
                GameObject       gm = Enemy_Prefab[Random.Range(1, Enemy_Prefab.Length)];
                EnemyMoveControl em = gm.GetComponent <EnemyMoveControl>();
                EnemyBoundary.RandomBd(out em.MovePart_LeftTop, out em.MovePart_RightBottom);
                if (i % 2 == 0)
                {
                    em.Movelevel = 0;
                }
                else
                {
                    em.Movelevel = 5;
                }
                em.moveSpeed = Random.Range(-0.5f, -1f);
                if (i % 3 == 0)
                {
                    gm.GetComponent <Done_WeaponController>().CircleNum   = Random.Range(5, 10);
                    gm.GetComponent <Done_WeaponController>().HowtoCreate = 8;
                }
                gm.GetComponent <prefabAttribute>().Setlife(80 + 20 * int_wave);
                gm.GetComponent <prefabAttribute>().SetAttack(10 + 5 * int_wave);
                em.moveSpeed       = Random.Range(-4f, -2f);
                obj_Enemy[i].m_obj = Instantiate(gm, new Vector3(Random.Range(tb_Boundary.xMin, tb_Boundary.xMax), 0, tb_Boundary.zMax),
                                                 Quaternion.Euler(new Vector3(0, 0, 0)));

                obj_Enemy[i].Alive = 1;
            }
            #region 等待进入下个波次
            weave_StartFlag = 0;
            log("waitnextwave");
            yield return(new WaitUntil(() => weave_StartFlag == 1)); //判断波次是否结束

            log("startnextwave");
            #endregion
        }
    }
Example #3
0
    IEnumerator Diswave2()//第二关
    {
        yield return(new WaitForSeconds(4));

        obj_Enemy = new Enemy_Object[5];
        for (int i = 0; i < 5; i++)
        {
            obj_Enemy[i] = new Enemy_Object();
        }
        Enemy_Dis = new NumDis[1];
        Enemy_Dis[0].prefabindex = 0;
        Enemy_Dis[0].EnemyAmount = 5;
        InitialEnemy(Enemy_Dis);//生成对应敌军,即5个0号预制体
        for (int i = 0; i < 5; i++)
        {
            obj_Enemy[i].m_obj.transform.position = new Vector3(tb_Boundary.xMin + i * (tb_Boundary.xLength / 4), 0, tb_Boundary.zMax);
            obj_Enemy[i].m_obj.GetComponent <Done_Mover>().speed *= 1 + 0.3f * i;//第一波 把敌人速依次增加
        }
        #region 等待进入下个波次
        weave_StartFlag = 0;
        log("waitnext");
        yield return(new WaitUntil(() => weave_StartFlag == 1)); //判断波次是否结束

        log("startnext");
        #endregion
        obj_Enemy = new Enemy_Object[6];
        for (int i = 0; i < 6; i++)
        {
            obj_Enemy[i] = new Enemy_Object();
        }
        Enemy_Dis = new NumDis[1];
        Enemy_Dis[0].prefabindex = 0;
        Enemy_Dis[0].EnemyAmount = 6;
        InitialEnemy(Enemy_Dis);//生成对应敌军,即6个0号预制体
        for (int i = 5; i >= 0; i--)
        {
            obj_Enemy[i].m_obj.transform.position = new Vector3(tb_Boundary.xMax - i * (tb_Boundary.xLength / 5), 0, tb_Boundary.zMax);
            obj_Enemy[i].m_obj.GetComponent <Done_Mover>().speed *= 1 + 0.3f * i;//第一波 把敌人速依次增加
        }
        #region 等待进入下个波次
        weave_StartFlag = 0;
        log("waitnext");
        yield return(new WaitUntil(() => weave_StartFlag == 1)); //判断波次是否结束

        log("startnext");
        #endregion
        //显示通关面板
        m_control.DisEnd(obj_config.int_NowMapLevel);//0失败 >1成功 表示通过的关卡等级
    }
Example #4
0
    IEnumerator Diswave1()
    {
        yield return(new WaitForSeconds(4));

        obj_Enemy = new Enemy_Object[1];
        for (int i = 0; i < 1; i++)
        {
            obj_Enemy[i] = new Enemy_Object();
        }
        Enemy_Dis = new NumDis[1];
        Enemy_Dis[0].prefabindex = 0;
        Enemy_Dis[0].EnemyAmount = 1; //1个陨石

        InitialEnemy(Enemy_Dis);      //生成对应敌军,即5个0号预制体
        #region 等待进入下个波次
        weave_StartFlag = 0;
        log("waitnext");
        yield return(new WaitUntil(() => weave_StartFlag == 1)); //判断波次是否结束

        log("startnext");
        #endregion
        m_control.DisEnd(obj_config.int_NowMapLevel);//0失败 >1成功 表示通过的关卡等级
    }