Exemple #1
0
    void SetJumpScreen(List <string> dibanNameList, int landNums, List <string> dyjList, bool isMoveDB, List <string> moveDibanList, List <string> diciList, int type = 1)
    {
        Vector2 qidian      = Vector2.zero;
        Vector2 zhongdian   = Vector2.zero;
        Vector2 lianjiedian = Vector2.zero;
        float   __x         = 0;
        float   __y         = 0;

        float _distanceX = 0;
        float _distanceY = 0;

        bool  isMFloor    = false;
        float lastMFloorW = 0;

        for (var i = 0; i < landNums; i++)
        {
            string _name = "";//dibanNameList[GlobalTools.GetRandomNum(dibanNameList.Count)];
            if (i != landNums - 1)
            {
                if (GlobalTools.GetRandomNum() < 100)
                {
                    //普通地板
                    _name = dibanNameList[GlobalTools.GetRandomNum(dibanNameList.Count)];
                }
                else
                {
                    //使用 mfloor
                    _name    = moveDibanList[GlobalTools.GetRandomNum(moveDibanList.Count)];
                    isMFloor = true;
                }
            }
            else
            {
                //最后一个floor 不能是 mfloor
                _name = dibanNameList[GlobalTools.GetRandomNum(dibanNameList.Count)];
            }


            GameObject lu = GlobalTools.GetGameObjectByName(_name);
            lu.transform.parent   = GlobalTools.FindObjByName("maps").transform;
            lu.transform.position = Vector2.zero;
            _distanceX            = 5f + GlobalTools.GetRandomDistanceNums(10f);


            //连接点
            if (GlobalTools.tempRecordMapObj.tag == "men")
            {
                lianjiedian = GlobalTools.tempRecordMapObj.transform.Find("ljd").position;
            }
            else
            {
                print("==================================================>   " + GlobalTools.tempRecordMapObj.transform.position);
                lianjiedian = GlobalTools.GetXMapLJDian(GlobalTools.tempRecordMapObj);
                print("=================================================lianjiedian=>   " + lianjiedian);
            }


            //大模块起点
            if (i == 0)
            {
                qidian = lianjiedian;
            }

            float _x = lianjiedian.x + _distanceX;

            if (lastMFloorW != 0)
            {
                _x -= lastMFloorW * 0.5f;
            }

            if (isMFloor)
            {
                isMFloor    = false;
                lastMFloorW = GlobalTools.GetHasPointMapObjW(lu);
                _x         += lastMFloorW * 0.5f;
            }

            float _y = qidian.y;

            if (type == 1)
            {
                //平地
            }
            else if (type == 2)
            {
                //小波动
                if (GlobalTools.GetRandomNum() > 50)
                {
                    _y = qidian.y + GlobalTools.GetRandomDistanceNums(2);
                }
                else
                {
                    _y = qidian.y - GlobalTools.GetRandomDistanceNums(2);
                }
            }
            else if (type == 3)
            {
                //上
                _y = lianjiedian.y + 2 + GlobalTools.GetRandomDistanceNums(5);
            }
            else if (type == 4)
            {
                //下
                _y = lianjiedian.y - 2 - GlobalTools.GetRandomDistanceNums(5);
            }

            lu.transform.position = new Vector2(_x, _y);

            print("lu------------------------------------------------------------>  qidian  " + qidian + "   lu   " + lu.transform.position);

            //大模块终点
            Vector2 _rd = lu.transform.Find("rd").transform.position;
            zhongdian = new Vector2(_rd.x + _distanceX, _rd.y);

            GlobalTools.tempRecordMapObj = lu;
            GlobalTools.SaveGameObj(lu);
        }

        //设置 地刺

        //设置大的远背景
    }