//======== //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; }
public override float getZ(float x, float y) { return(ScenceUtils.getGroundHight(x, y)); }