Ejemplo n.º 1
0
    void GetWu(string wuName, Vector2 qidian, Vector2 zhongdian, int SDOrder, Color color)
    {
        string     _wuName = "wu_1_1";
        GameObject _wu     = GlobalTools.GetGameObjectByName(_wuName);

        //补的雾 看后面的需求
        //GameObject _wu2 = GlobalTools.GetGameObjectByName(_wuName);
        _wu.transform.parent = GlobalTools.FindObjByName("maps").transform;
        float _w  = GlobalTools.GetJingW(_wu);
        float _h  = GlobalTools.GetJingH(_wu);
        float _w2 = Mathf.Abs(zhongdian.x - qidian.x);
        float _h2 = Mathf.Abs(zhongdian.y - qidian.y) + 5;


        _wu.transform.localScale = new Vector3(_w2 / _w + 0.6f, _h2 / _h * 3, 1);
        _wu.transform.position   = new Vector2(qidian.x + _w2 * 0.5f + (_w2 - GlobalTools.GetJingW(_wu)) * 0.5f, zhongdian.y + GlobalTools.GetJingH(_wu) * 0.5f + 2);

        //print(">?????????????????????????????????????????????????????????????    "+ _w+"  >-缩放后  " +GlobalTools.GetJingW(_wu));

        GlobalTools.SetMapObjOrder(_wu, SDOrder);

        //print("雾的宽度  "+_w+"  _w2宽度  "+_w2+"   宽度缩放比例    "+_w2/_w+"   weizhi "+_wu.transform.position);
        //print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  "+_wu.transform.position+"   起点  "+qidian+"   终点 "+zhongdian);


        //改变雾的颜色
        _wu.GetComponent <SpriteRenderer>().color = color;// new Color(0.1f,1f,1f,0.5f);//new Color((129 / 255)f, (69 / 255)f, (69 / 255)f, (255 / 255)f); //Color.red;
    }
Ejemplo n.º 2
0
    //大远背景 从中间开始 两面距离 分散的 排列方法(注意 大平地 排列方法 按以前的来)
    protected void SetDaYuanBeijing(List <string> JingLists, int nums, Vector2 pos1, Vector2 pos2, float _y, float _z, float _dz, int sd, string _cx, float ZYXiuzheng)
    {
        if (JingLists.Count == 0)
        {
            return;
        }
        List <string> strArr = JingLists;//GetDateByName.GetInstance().GetListByName(jinglistName, MapNames.GetInstance());

        //string _jinglistNameTou = jinglistName.Split('_')[0];
        //print("    ----------------------------------------------------------------------------  "+ _jinglistNameTou);
        for (int i = 0; i < nums; i++)
        {
            string objName = strArr[GlobalTools.GetRandomNum(strArr.Count)];
            //print("  ----------------------------- 前景名字  "+ objName);
            GameObject jingObj = GlobalTools.GetGameObjectByName(objName);
            print("111111jingObj    " + jingObj.name);
            if (jingObj == null)
            {
                continue;
            }
            jingObj.transform.parent = maps.transform;

            float __x   = 0;
            float __y   = 0;
            float __z   = 0;
            float jingW = GlobalTools.GetJingW(jingObj);
            float jingH = GlobalTools.GetJingH(jingObj);
            float w     = Mathf.Abs(pos1.x - pos2.x);

            float __dxXiuzheng = 1;
            float __dx         = GlobalTools.GetRandomNum(100) > 50 ? GlobalTools.GetRandomDistanceNums(__dxXiuzheng) : -GlobalTools.GetRandomDistanceNums(__dxXiuzheng);
            __x = pos1.x + w * 0.5f + __dx;

            if (jingObj.GetComponent <JingBase>())
            {
                __y = _y + jingObj.GetComponent <JingBase>().GetCenterPosY() - ZYXiuzheng - GlobalTools.GetRandomDistanceNums(0.4f); //GlobalTools.GetRandomDistanceNums(1);
            }
            else
            {
                __y = _y + 3f;
            }
            __z = _z + GlobalTools.GetRandomDistanceNums(_dz);
            jingObj.transform.position = new Vector3(__x, __y, __z);

            int _sd = sd + i % 10;
            GlobalTools.SetMapObjOrder(jingObj, _sd);

            GlobalTools.SaveGameObj(jingObj);
        }
    }
Ejemplo n.º 3
0
    protected virtual void GetWu(string wuName, Vector2 qidian, Vector2 zhongdian, int SDOrder, Color color)
    {
        string _wuName = "wu_1_1";

        if (wuName == "qWu")
        {
            _wuName = "wu_qWu_1";
        }
        GameObject _wu = GlobalTools.GetGameObjectByName(_wuName);

        //print("  wu " +_wu.name+"  pos "+_wu.transform.position);
        //补的雾 看后面的需求
        //GameObject _wu2 = GlobalTools.GetGameObjectByName(_wuName);
        _wu.transform.parent = GlobalTools.FindObjByName("maps").transform;
        float _w  = GlobalTools.GetJingW(_wu);
        float _h  = GlobalTools.GetJingH(_wu);
        float _w2 = Mathf.Abs(zhongdian.x - qidian.x);
        float _h2 = Mathf.Abs(zhongdian.y - qidian.y) + 5;

        if (wuName != "qWu")
        {
            //print(" 地板宽度     "+_w2);
            _wu.transform.localScale = new Vector3(_w2 / (_w + 0.6f), _h2 / _h * 3, 1);
            //print("  缩放 "+ _wu.transform.localScale);
            _wu.transform.position = new Vector2(qidian.x + _w2 * 0.5f + (_w2 - GlobalTools.GetJingW(_wu)) * 0.5f, zhongdian.y + GlobalTools.GetJingH(_wu) * 0.5f - 0.3f);
        }
        else
        {
            _wu.transform.position = new Vector3(qidian.x + _w2 * 0.5f + (_w2 - GlobalTools.GetJingW(_wu)) * 0.5f, zhongdian.y + GlobalTools.GetJingH(_wu) * 0.5f + GlobalTools.GetRandomDistanceNums(1), -0.8f - GlobalTools.GetRandomDistanceNums(1.8f));
        }

        //print(">?????????????????????????????????????????????????????????????    "+ _w+"  >-缩放后  " +GlobalTools.GetJingW(_wu));

        GlobalTools.SetMapObjOrder(_wu, SDOrder);

        //print("雾的宽度  "+_w+"  _w2宽度  "+_w2+"   宽度缩放比例    "+_w2/_w+"   weizhi "+_wu.transform.position);
        //print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  "+_wu.transform.position+"   起点  "+qidian+"   终点 "+zhongdian);


        //改变雾的颜色
        _wu.GetComponent <SpriteRenderer>().color = color;// new Color(0.1f,1f,1f,0.5f);//new Color((129 / 255)f, (69 / 255)f, (69 / 255)f, (255 / 255)f); //Color.red;
    }
Ejemplo n.º 4
0
    protected virtual void SetTongYongXiushiJing(Transform JingTrans, List <string> JingNameList, int JingNums = 0)
    {
        print(" xs   width   " + GetWidth() * 0.6f);
        GetObjListNameList(JingTrans, JingNameList);
        if (JingNameList.Count == 0)
        {
            return;
        }

        //有字节头的 特殊处理  eg:  qj_    yqj_    ybj_
        //其他根据 大小来 判断 位置

        float _l       = tl.transform.position.x;
        float _r       = rd.transform.position.x;
        float _topPosY = tl.transform.position.y;
        float _w       = GetWidth();
        int   nums     = 0;

        if (JingNums != 0)
        {
            nums = JingNums;
        }
        else
        {
            nums = 1 + GlobalTools.GetRandomNum(JingNameList.Count);
        }



        print(" xs  nums " + nums);

        for (int i = 0; i < nums; i++)
        {
            string objName = JingNameList[GlobalTools.GetRandomNum(JingNameList.Count)];
            print(" xs objName  " + objName);

            GameObject jingObj = GlobalTools.GetGameObjectByName(objName);
            if (jingObj == null)
            {
                continue;
            }
            jingObj.transform.parent = maps.transform;


            //无法判断大小的 都作为修饰景
            //和 雾一起配合  +一个 雾进去??  是加 雾 还是 自带  ----- 先不加这个
            //深度 在 -10 --- -40
            //dY <= 2

            float JingW = 0;
            float JingH = 0;
            float _x    = 0;
            float _y    = 0;
            float _z    = 0;

            if (jingObj.GetComponent <JingBase>())
            {
                JingW = jingObj.GetComponent <JingBase>().GetWidth();
                JingH = jingObj.GetComponent <JingBase>().GetHeight();
            }
            else
            {
                JingW = GlobalTools.GetJingW(jingObj);
                JingH = GlobalTools.GetJingH(jingObj);
            }

            float LeftPosX = tl.transform.position.x;
            float LeftPosY = tl.transform.position.y;

            float ___qishiX     = LeftPosX + (GetWidth() - JingW) * 0.25f;
            float ___RandomDisX = (GetWidth() - JingW) * 0.5f;
            float _dy           = 0;
            _dy = JingH <= 3 ? GlobalTools.GetRandomDistanceNums(0.5f) : 0.5f + GlobalTools.GetRandomDistanceNums(1f);
            if (JingH <= 1.4f)
            {
                _dy = GlobalTools.GetRandomDistanceNums(0.2f) - GlobalTools.GetRandomDistanceNums(0.5f);
            }
            //_dy = 0;
            int sd = 20;

            string[] strArr  = jingObj.name.Split('_');
            string   touName = strArr[0];
            string   S2Name  = "";
            if (strArr[1] != null)
            {
                S2Name = strArr[1];
            }



            if (touName == "qj")
            {
            }
            else if (touName == "yqj")
            {
                _z  = -1.2f - GlobalTools.GetRandomDistanceNums(0.5f);
                _x  = LeftPosX + GetWidth() * 0.4f + GlobalTools.GetRandomDistanceNums(GetWidth() * 0.2f);
                _dy = JingH - GlobalTools.GetRandomDistanceNums(0.8f);
                sd  = 50 - i % 8;
            }
            else if (touName == "ybj")
            {
            }
            else
            {
                if (JingW >= 7.6f || JingH >= 4)
                {
                    //居中靠后型的
                    _z  = 1 + GlobalTools.GetRandomDistanceNums(1);
                    _x  = LeftPosX + GetWidth() * 0.2f + GlobalTools.GetRandomDistanceNums(GetWidth() * 0.6f); // ___qishiX+___RandomDisX;
                    _dy = 0.5f + GlobalTools.GetRandomDistanceNums(2f);
                    sd  = -60 - i % 8;
                }
                else if (JingW <= 4f)
                {
                    _z = GlobalTools.GetRandomDistanceNums(0.4f);
                    _x = LeftPosX + JingW * 0.6f + GlobalTools.GetRandomDistanceNums(GetWidth() - JingW * 1.2f);
                    sd = -1 - i % 8;
                }
                else
                {
                    _z = 0.5f + GlobalTools.GetRandomDistanceNums(1);
                    _x = LeftPosX + JingW * 0.8f + GlobalTools.GetRandomDistanceNums(GetWidth() - JingW * 1.8f);
                    sd = -50 - i % 8;
                }



                //if (jingObj.GetComponent<JingBase>())
                //{

                //}
                //else
                //{



                //}
            }

            if (touName == "wy" || S2Name != "")
            {
                //唯一  直接在 数组内取出删除
                JingNameList.Remove(objName);
            }



            if (jingObj.GetComponent <JingBase>())
            {
                jingObj.GetComponent <JingBase>().SetSD(sd);
            }
            else
            {
                GlobalTools.SetMapObjOrder(jingObj, sd);
            }

            _y = LeftPosY + JingH * 0.5f - _dy;


            jingObj.transform.position = new Vector3(_x, _y, _z);
            GlobalTools.SaveGameObj(jingObj);
        }
    }
Ejemplo n.º 5
0
    protected virtual void GetTopDingJing(Transform JingTrans, List <string> JingNameList, int JingNums = 0)
    {
        GetObjListNameList(JingTrans, JingNameList);
        if (JingNameList.Count == 0)
        {
            return;
        }

        Vector2 pos1 = DingDBPosL.position;
        Vector2 pos2 = DingDBPosR.position;


        float _l       = DingDBPosL.transform.position.x;
        float _r       = DingDBPosR.transform.position.x;
        float _topPosY = DingDBPosL.transform.position.y;
        float _w       = Mathf.Abs(_l - _r);

        int nums = 0;

        if (JingNums != 0)
        {
            nums = JingNums;
        }
        else
        {
            nums = 5 + GlobalTools.GetRandomNum(JingNameList.Count);
        }

        for (int i = 0; i < nums; i++)
        {
            string objName = JingNameList[GlobalTools.GetRandomNum(JingNameList.Count)];
            print(" xs objName  " + objName);

            GameObject jingObj = GlobalTools.GetGameObjectByName(objName);
            if (jingObj == null)
            {
                continue;
            }
            jingObj.transform.parent = maps.transform;

            float JingW = 0;
            float JingH = 0;
            float _x    = 0;
            float _y    = 0;
            float _z    = 0;
            int   sd    = 0;

            if (jingObj.GetComponent <JingBase>())
            {
                JingW = jingObj.GetComponent <JingBase>().GetWidth();
                JingH = jingObj.GetComponent <JingBase>().GetHeight();
            }
            else
            {
                JingW = GlobalTools.GetJingW(jingObj);
                JingH = GlobalTools.GetJingH(jingObj);
            }

            string touName  = objName.Split('_')[0];
            string touNmae2 = "";//objName.Split('_')[1];
            if (objName.Split('_')[1] != null)
            {
                touNmae2 = objName.Split('_')[1];
            }

            if (touName == "qj")
            {
                if (JingW >= 8f)
                {
                    print("XXXX1  jingW " + JingW + "  _w " + _w);
                    _x = _l + JingW * 0.5f + GlobalTools.GetRandomDistanceNums(_w - JingW - 0.3f);
                    _y = _topPosY + JingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.5f);
                    _z = -GlobalTools.GetRandomDistanceNums(0.3f);
                    sd = 30 + i % 8;
                }
                else if (JingW <= 4.4f)
                {
                    print("XXXX2  jingW " + JingW + "  _w " + _w);
                    _x = _l + JingW * 0.5f + _w * 0.2f + GlobalTools.GetRandomDistanceNums(_w * 0.6f);
                    _y = _topPosY + JingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.5f);
                    _z = -0.6f + -GlobalTools.GetRandomDistanceNums(0.6f);
                    sd = 50 + i % 8;
                }
                else
                {
                    _x = _l + JingW * 0.5f + _w * 0.2f + GlobalTools.GetRandomDistanceNums(_w * 0.6f);
                    _y = _topPosY + JingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.3f);
                    _z = -GlobalTools.GetRandomDistanceNums(0.3f);
                    sd = 40 + i % 8;
                }
            }
            else if (touName == "Qiang")
            {
                //墙 越宽 越靠前
                if (JingW >= 8f)
                {
                    _x = _l + JingW * 0.5f + GlobalTools.GetRandomDistanceNums(_w - JingW - 0.3f);
                    _y = _topPosY + GlobalTools.GetRandomDistanceNums(JingH * 0.2f);
                    _z = -0.3f - GlobalTools.GetRandomDistanceNums(0.3f);
                    sd = -10 - i % 8;
                }
                else if (JingW <= 4.4f)
                {
                    _x = _l + JingW * 0.5f + _w * 0.2f + GlobalTools.GetRandomDistanceNums(_w * 0.6f);
                    _y = _topPosY - GlobalTools.GetRandomDistanceNums(JingH * 0.5f);
                    _z = 0.8f + GlobalTools.GetRandomDistanceNums(0.6f);
                    sd = -70 - i % 8;
                }
                else
                {
                    _x = _l + JingW * 0.5f + _w * 0.2f + GlobalTools.GetRandomDistanceNums(_w * 0.6f);
                    _y = _topPosY - GlobalTools.GetRandomDistanceNums(JingH * 0.5f);
                    _z = 0.4f + GlobalTools.GetRandomDistanceNums(0.6f);
                    sd = -60 - i % 8;
                }
            }
            else
            {
                //顶部的 零碎景
                _x = _l + JingW * 0.5f + GlobalTools.GetRandomDistanceNums(_w - JingW - 0.3f);
                _y = _topPosY - JingH * 0.3f + GlobalTools.GetRandomDistanceNums(JingH * 0.8f);
                _z = GlobalTools.GetRandomDistanceNums(0.3f);

                //前 还是后
                _z = GlobalTools.GetRandomNum() > 50 ? _z : -_z;
                if (_z >= 0)
                {
                    sd = 22 + i % 8;
                }
                else
                {
                    sd = -10 - i % 8;
                    //_z = -GlobalTools.GetRandomDistanceNums(0.3f);
                }
            }


            if (touName == "wy" || touNmae2 == "wy")
            {
                JingNameList.Remove(objName);
            }

            if (jingObj.GetComponent <JingBase>())
            {
                jingObj.GetComponent <JingBase>().SetSD(sd);
            }
            else
            {
                GlobalTools.SetMapObjOrder(jingObj, sd);
            }

            jingObj.transform.position = new Vector3(_x, _y, _z);
        }
    }
Ejemplo n.º 6
0
    protected override void Zhuangshiwu(string JName = "Zhuangshiwu_1")
    {
        //print("zsw  JName " + JName);
        string zswArrName = MapNames.GetInstance().GetJingArrNameByGKKey(JName);

        //print("zsw  zswArrName " + zswArrName);


        if (zswArrName == "")
        {
            return;
        }

        //判断是否有装饰物  只有一个
        if (GlobalTools.GetRandomNum() < 20)
        {
            return;
        }
        Vector2 pos1 = tl.position;
        Vector2 pos2 = new Vector2(rd.position.x, tl.position.y);
        //float _y = pos1.y - 1.5f;
        //int nums = 1 + GlobalTools.GetRandomNum(2);
        //SetJingByDistanceU("jyj_1", nums, pos1, pos2, pos1.y - GlobalTools.GetRandomDistanceNums(2), 0, 0, -10, "u");



        GameObject Jobj = GetJObjByListName(zswArrName);

        string jingNameKey = Jobj.name.Split('_')[0];


        float jingW = 0;
        float jingH = 0;

        if (Jobj.GetComponent <J_SPBase>())
        {
            jingW = Jobj.GetComponent <J_SPBase>().GetWidth();
            if (Jobj.GetComponent <J_SPBase>().light2d != null)
            {
                Jobj.GetComponent <J_SPBase>().light2d.color = GlobalTools.RandomColor();
            }

            Jobj.GetComponent <J_SPBase>().SetSD(-10);
        }
        else
        {
            jingW = GlobalTools.GetJingW(Jobj);
            jingH = GlobalTools.GetJingH(Jobj);
        }



        float _w  = GetWidth() - jingW;
        float __x = tl.position.x + GlobalTools.GetRandomDistanceNums(_w);
        float __y = tl.position.y - GlobalTools.GetRandomDistanceNums(1);



        if (jingNameKey == "lj")
        {
            if (Jobj.GetComponent <J_SPBase>())
            {
                __x = tl.position.x;
                __y = tl.position.y - GlobalTools.GetRandomDistanceNums(0.3f);
            }
            else
            {
                jingW = GlobalTools.GetJingW(Jobj);  //Jobj.GetComponent<SpriteRenderer>().bounds.;
                jingH = GlobalTools.GetJingH(Jobj);

                __x = tl.position.x + jingW * 0.5f;
                //__y = tl.position.y + jingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.3f) + 0.2f;
                if (JName == "Zhuangshiwu_1")
                {
                    __y = tl.position.y + jingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.3f) + 0.2f;
                }
                else
                {
                    __y = tl.position.y + jingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.3f) - 0.7f;
                }
            }

            if (GlobalTools.GetRandomNum() > 40)
            {
                //限制 出的几率 免得 太多
                Jobj.transform.position = new Vector3(__x, __y, 0);
                return;
            }

            int nums = (int)(_w / jingW) - 1;


            if (nums > 1)
            {
                int maxNums = 1 + GlobalTools.GetRandomNum(nums);
                //print(" zsw  1> maxNums   "+ maxNums);
                string JingName = GlobalTools.GetNewStrQuDiaoClone(Jobj.name);
                //print(" zsw  2> JingName=Jobj.name>   " + JingName);
                string jingNameTou = JingName.Split('-')[0];
                //print(" zsw  3> jingNameTou   " + jingNameTou);

                for (int i = 0; i < maxNums; i++)
                {
                    string LJJingName = jingNameTou + "-" + (i + 1);
                    //print(i+ "  zsw  4>    LJJingName   " + LJJingName);
                    GameObject ljJing;
                    ljJing = GlobalTools.GetGameObjectByName(LJJingName);
                    if (ljJing == null)
                    {
                        //continue;
                        LJJingName = jingNameTou + "-1";
                        ljJing     = GlobalTools.GetGameObjectByName(LJJingName);
                    }
                    //print("LJJingName      " + LJJingName);
                    float _ljx = tl.position.x + (i + 1) * jingW;
                    if (!Jobj.GetComponent <J_SPBase>())
                    {
                        _ljx = tl.position.x + (i + 1) * jingW + jingW * 0.5f;
                    }
                    ljJing.transform.position = new Vector3(_ljx, __y, 0);
                    ljJing.transform.parent   = maps.transform;
                }
            }
        }
        else if (jingNameKey == "deng")
        {
            //灯 放路中间 左右偏移一点的位置
            float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f);
            __x = tl.position.x + GetWidth() * 0.5f + _pianyi;
        }
        else if (jingNameKey == "guangHua")
        {
            //发光的花
            float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f);
            __x = tl.position.x + GetWidth() * 0.5f + _pianyi;
            __y = tl.position.y + 2.2f;
        }

        if (JName == "QianZhuangshiwu_1")
        {
            __y -= 0.9f;
        }
        Jobj.transform.position = new Vector3(__x, __y, 0);
    }
Ejemplo n.º 7
0
    protected virtual void Zhuangshiwu2(string JName = "zsw")
    {
        string zswArrName = MapNames.GetInstance().GetJingArrNameByGKKey(JName);

        if (zswArrName == "")
        {
            return;
        }



        //中间 向两边扩散的 方法
        //靠内一点的 平铺


        //判断是否有装饰物  只有一个
        //if (GlobalTools.GetRandomNum() < 20) return;
        Vector2 pos1 = tl.position;
        Vector2 pos2 = new Vector2(rd.position.x, tl.position.y);
        //float _y = pos1.y - 1.5f;
        //int nums = 1 + GlobalTools.GetRandomNum(2);
        //SetJingByDistanceU("jyj_1", nums, pos1, pos2, pos1.y - GlobalTools.GetRandomDistanceNums(2), 0, 0, -10, "u");



        GameObject Jobj = GetJObjByListName(zswArrName);

        string jingNameKey = Jobj.name.Split('_')[0];


        float jingW = 0;
        float jingH = 0;

        if (Jobj.GetComponent <J_SPBase>())
        {
            jingW = Jobj.GetComponent <J_SPBase>().GetWidth();
            if (Jobj.GetComponent <J_SPBase>().light2d != null)
            {
                Jobj.GetComponent <J_SPBase>().light2d.color = GlobalTools.RandomColor();
            }

            Jobj.GetComponent <J_SPBase>().SetSD(-10);
        }
        else
        {
            jingW = GlobalTools.GetJingW(Jobj);
            jingH = GlobalTools.GetJingH(Jobj);
        }



        float _w = GetWidth() - jingW;

        print("剩余的 w 是多少宽度     " + _w);
        float __x = tl.position.x + GlobalTools.GetRandomDistanceNums(_w * 0.5f);

        //__x = tl.position.x + _w * 0.5f;
        print("  __x  起始位置   " + __x);
        _w -= (__x - tl.position.x);
        print(" 除去 起始X后 剩余的 w 是多少宽度     " + _w);
        float __y = tl.position.y - GlobalTools.GetRandomDistanceNums(1);



        if (jingNameKey == "lj")
        {
            if (Jobj.GetComponent <J_SPBase>())
            {
                __x = tl.position.x;
                __y = tl.position.y - GlobalTools.GetRandomDistanceNums(0.3f);
            }
            else
            {
                //print(" Jobj  "+ Jobj.name);

                //jingW = GlobalTools.GetJingW(Jobj);  //Jobj.GetComponent<SpriteRenderer>().bounds.;
                //jingH = GlobalTools.GetJingH(Jobj);

                //__x = tl.position.x + jingW * 0.5f;
                __y = tl.position.y + jingH * 0.5f - 0.2f;
            }
            Jobj.transform.position = new Vector3(__x, __y, 0);
            //if (GlobalTools.GetRandomNum() > 40)
            //{
            //    //限制 出的几率 免得 太多
            //    return;
            //}

            int nums = (int)(_w / jingW) - 1;
            print(" ------------------------------> _w " + _w + "  jingW   " + jingW + "   xxxxx " + Jobj.transform.position.x);
            if (nums > 1)
            {
                int    maxNums     = 1 + GlobalTools.GetRandomNum(nums);
                string JingName    = GlobalTools.GetNewStrQuDiaoClone(Jobj.name);
                string jingNameTou = JingName.Split('-')[0];
                for (int i = 0; i < maxNums; i++)
                {
                    string     LJJingName = jingNameTou + "-" + (i + 1);
                    GameObject ljJing;
                    ljJing = GlobalTools.GetGameObjectByName(LJJingName);
                    if (ljJing == null)
                    {
                        LJJingName = jingNameTou + "-1";
                        ljJing     = GlobalTools.GetGameObjectByName(LJJingName);
                    }
                    //print("LJJingName      " + LJJingName);
                    //记录上一个 景位置  来算下一个位置

                    float _ljx = tl.position.x + (i + 1) * jingW;


                    if (!Jobj.GetComponent <J_SPBase>())
                    {
                        //_ljx = tl.position.x + (i + 1) * jingW + jingW * 0.5f;
                        print("i " + i + "  --->_ljx: " + _ljx + "  jingW  " + jingW);
                        _ljx = Jobj.transform.position.x + (i + 1) * jingW;
                        __y  = tl.position.y + jingH * 0.5f - GlobalTools.GetRandomDistanceNums(0.4f) - 0.15f;
                        print(" ----------> __y " + __y + "   tly " + tl.position.y);
                    }
                    else
                    {
                        _ljx = tl.position.x + (i + 1) * jingW;
                    }

                    if (JName == "qZsw")
                    {
                        ljJing.GetComponent <SpriteRenderer>().sortingOrder = 40 + i % 3;
                        __y -= (0.6f + GlobalTools.GetRandomDistanceNums(0.4f));
                    }

                    ljJing.transform.position = new Vector3(_ljx, __y, 0);
                    ljJing.transform.parent   = maps.transform;
                }
            }
        }
        else if (jingNameKey == "deng")
        {
            //灯 放路中间 左右偏移一点的位置
            float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f);
            __x = tl.position.x + GetWidth() * 0.5f + _pianyi;
            Jobj.transform.position = new Vector3(__x, __y, 0);
        }
        else if (jingNameKey == "guangHua")
        {
            //发光的花
            float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f);
            __x = tl.position.x + GetWidth() * 0.5f + _pianyi;
            __y = tl.position.y + 2.2f;
            Jobj.transform.position = new Vector3(__x, __y, 0);
        }

        if (JName == "qZsw")
        {
            __y = tl.position.y - (0.4f + GlobalTools.GetRandomDistanceNums(0.4f));
            Jobj.GetComponent <SpriteRenderer>().sortingOrder = 40;
            Jobj.transform.position = new Vector3(__x, __y, 0);
        }
    }
Ejemplo n.º 8
0
    protected override void Zhuangshiwu(string JName = "zsw")
    {
        //水面地板
        GetDBShuiMian();
        //出水面怪
        ShuiMianChuGuai();

        string zswArrName = MapNames.GetInstance().GetJingArrNameByGKKey(JName);

        if (zswArrName == "")
        {
            return;
        }

        //判断是否有装饰物  只有一个
        if (GlobalTools.GetRandomNum() < 20)
        {
            return;
        }
        Vector2 pos1 = tl.position;
        Vector2 pos2 = new Vector2(rd.position.x, tl.position.y);
        //float _y = pos1.y - 1.5f;
        //int nums = 1 + GlobalTools.GetRandomNum(2);
        //SetJingByDistanceU("jyj_1", nums, pos1, pos2, pos1.y - GlobalTools.GetRandomDistanceNums(2), 0, 0, -10, "u");



        GameObject Jobj = GetJObjByListName(zswArrName);

        string jingNameKey = Jobj.name.Split('_')[0];


        float jingW = 0;
        float jingH = 0;

        if (Jobj.GetComponent <J_SPBase>())
        {
            jingW = Jobj.GetComponent <J_SPBase>().GetWidth();
            if (Jobj.GetComponent <J_SPBase>().light2d != null)
            {
                Jobj.GetComponent <J_SPBase>().light2d.color = GlobalTools.RandomColor();
            }

            Jobj.GetComponent <J_SPBase>().SetSD(-10);
        }
        else
        {
            jingW = GlobalTools.GetJingW(Jobj);
            jingH = GlobalTools.GetJingH(Jobj);
        }



        float _w  = GetWidth() - jingW;
        float __x = tl.position.x + GlobalTools.GetRandomDistanceNums(_w);
        float __y = tl.position.y - GlobalTools.GetRandomDistanceNums(1);



        if (jingNameKey == "lj")
        {
            if (Jobj.GetComponent <J_SPBase>())
            {
                __x = tl.position.x;
                __y = tl.position.y - GlobalTools.GetRandomDistanceNums(0.3f);
            }
            else
            {
                jingW = GlobalTools.GetJingW(Jobj);  //Jobj.GetComponent<SpriteRenderer>().bounds.;
                jingH = GlobalTools.GetJingH(Jobj);

                __x = tl.position.x + jingW * 0.5f;
                __y = tl.position.y + jingH * 0.5f + GlobalTools.GetRandomDistanceNums(0.5f);
            }

            if (GlobalTools.GetRandomNum() > 40)
            {
                //限制 出的几率 免得 太多
                Jobj.transform.position = new Vector3(__x, __y, 0);
                return;
            }

            int nums = (int)(_w / jingW) - 1;


            if (nums > 1)
            {
                int    maxNums     = 1 + GlobalTools.GetRandomNum(nums);
                string JingName    = GlobalTools.GetNewStrQuDiaoClone(Jobj.name);
                string jingNameTou = JingName.Split('-')[0];
                for (int i = 0; i < maxNums; i++)
                {
                    string     LJJingName = jingNameTou + "-" + (i + 1);
                    GameObject ljJing;
                    ljJing = GlobalTools.GetGameObjectByName(LJJingName);
                    if (ljJing == null)
                    {
                        LJJingName = jingNameTou + "-1";
                        ljJing     = GlobalTools.GetGameObjectByName(LJJingName);
                    }
                    //print("LJJingName      " + LJJingName);
                    float _ljx = tl.position.x + (i + 1) * jingW;
                    if (!Jobj.GetComponent <J_SPBase>())
                    {
                        _ljx = tl.position.x + (i + 1) * jingW + jingW * 0.5f;
                    }
                    ljJing.transform.position = new Vector3(_ljx, __y, 0);
                    ljJing.transform.parent   = maps.transform;
                }
            }
        }
        else if (jingNameKey == "deng")
        {
            //灯 放路中间 左右偏移一点的位置
            float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f);
            __x = tl.position.x + GetWidth() * 0.5f + _pianyi;
        }
        else if (jingNameKey == "guangHua")
        {
            //发光的花
            float _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(0.2f) : -GlobalTools.GetRandomDistanceNums(0.2f);
            //__x = tl.position.x + GetWidth() * 0.5f + _pianyi;

            if (GlobalTools.GetRandomNum() > 50)
            {
                //左边
                __x = pos1.x + (this.thePos1.position.x - pos1.x) * 0.5f + _pianyi;
            }
            else
            {
                __x = thePos2.position.x + (pos2.x - thePos2.position.x) * 0.5f + _pianyi;
            }

            __y = tl.position.y + 2.6f;
        }
        Jobj.transform.position = new Vector3(__x, __y, 0);

        //水下 是否有
        if (GlobalTools.GetRandomNum() > 0)
        {
            float      _pianyi = 0;
            GameObject Jobj2;
            if (ShuiMianDBNums == 100)
            {
                int   zswNums    = 5;
                float _distances = Mathf.Abs(thePos2.position.x - thePos1.position.x) / (zswNums + 1);
                for (int i = 0; i < zswNums; i++)
                {
                    Jobj2   = GetJObjByListName(zswArrName);
                    _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f);
                    __x     = pos1.x + (i + 1) * _distances + _pianyi;
                    __y     = tl.position.y - 1.6f - GlobalTools.GetRandomDistanceNums(1f);
                    Jobj2.transform.position = new Vector2(__x, __y);
                }
            }
            else
            {
                Jobj2   = GetJObjByListName(zswArrName);
                _pianyi = GlobalTools.GetRandomNum() > 50 ? GlobalTools.GetRandomDistanceNums(1f) : -GlobalTools.GetRandomDistanceNums(1f);
                __x     = pos1.x + (pos2.x - pos1.x) * 0.5f + _pianyi;
                __y     = tl.position.y - 1.6f - GlobalTools.GetRandomDistanceNums(0.4f);
                Jobj2.transform.position = new Vector3(__x, __y, 0);
            }
        }
    }