Exemplo n.º 1
0
        //========

        //private int hdtindex;
        //override public double getZ( double x, double y)
        //{
        //	//return 0;
        //	byte[] gray = (this.g_gameConfM as muCLientConfig).localGrd.gray;
        //	float width = (this.g_gameConfM as muCLientConfig).localGrd.wight;
        //	float height = (this.g_gameConfM as muCLientConfig).localGrd.height;
        //	double posy = 0;
        //	if (gray!=null)
        //	{
        //		int index = (int)((y * GameConstant.PIXEL_TRANS_UNIT) * width) + (int)(x * GameConstant.PIXEL_TRANS_UNIT);
        //		if (Math.Abs(index) < gray.Length)
        //		{
        //			hdtindex = gray[(int)((y * GameConstant.PIXEL_TRANS_UNIT) * width) + (int)(x * GameConstant.PIXEL_TRANS_UNIT)];
        //			posy = (hdtindex - GameConstant.MIN_GRAY) * GameConstant.GRAY_TRANS_PIXEL;
        //			if (posy <= 0.5)
        //			{
        //				posy = 0;
        //			}
        //			return posy;
        //		}
        //	}
        //	return posy;

        //	/*
        //	Variant pinfo = this._netM.joinWorldInfoInst.mainPlayerInfo;
        //	uint currMapid = pinfo["mapid"];
        //	todo map conf
        //	Variant local_conf = this.mgr._sceneM.GraphMgr.getMapConf( currMapid.ToString() );
        //	Variant conf =  this._gameConfM.svrMapsConf.getSingleMapConf( currMapid );
        //	float tile_size = conf["tile_size"];
        //	float globaMapW = conf["width"] * tile_size;
        //	float globaMapH = conf["height"] * tile_size;*/
        //}


        override public float getZ(float x, float y)
        {
            return(ScenceUtils.getGroundHight(x, y));

            return(0);

            ClientGrdConfig cgc = (this.g_gameConfM as muCLientConfig).localGrd;

            if (cgc.m_hdtdata != null)
            {
                //debug.Log("getZ x = " + x* GameConstantDef.PIXEL_TRANS_HDTP + "   y = " + y* GameConstantDef.PIXEL_TRANS_HDTP); 以前的高度图是阻挡格的9倍,相当一个阻挡3*3个高度
                uint msk_x = (uint)(x * 0.03125f);
                uint msk_y = (uint)(y * 0.03125f);

                uint idx = msk_y * lgmap.m_unMapWidth + msk_x;

                //debug.Log("getZ x = " + msk_x + "   y = " + msk_y + "   map w =" + lgmap.m_unMapWidth);

                if (idx < cgc.m_hdtdata.Length)
                {
                    return(cgc.m_hdtdata[idx]);
                }
            }

            //jason 先用统一高度
            float fhdt_z = (this.g_gameConfM as muCLientConfig).localGrd.m_hdt_z;

            return(fhdt_z);

            //这里需要处理下差值


            //byte[] gray = (this.g_gameConfM as muCLientConfig).localGrd.gray;
            //float width = (this.g_gameConfM as muCLientConfig).localGrd.grayWidth;
            //float height = (this.g_gameConfM as muCLientConfig).localGrd.grayHeight;

            ////todo
            //float hmin = (this.g_gameConfM as muCLientConfig).localGrd.min * 0.01f;
            //float hmax = (this.g_gameConfM as muCLientConfig).localGrd.max * 0.01f;

            //int hdt = gethdt((int)(x * GameConstantDef.PIXEL_TRANS_HDTP), (int)(y* GameConstantDef.PIXEL_TRANS_HDTP) );

            ////中间高度为  =  最低点+(最高点-最低点)*(当前像素-1)/(255-1)   hmin="277" hmax="2503"/
            //double z = hmin + (hmax - hmin) * (hdt - 1.0f) / 254.0f;

            //return z;
        }
Exemplo n.º 2
0
 public override float getZ(float x, float y)
 {
     return(ScenceUtils.getGroundHight(x, y));
 }