我找到了。 感謝大家。
該遊戲使用N3Terrain :)
float CN3Terrain::GetHeight(float x, float z)
{ INT IX,IZ; ix =((int)x)/ TILE_SIZE; iz =((int)z)/ TILE_SIZE;
if(ix<0 || ix>(m_ti_MapSize-2)) return -FLT_MAX;
if(iz<0 || iz>(m_ti_MapSize-2)) return -FLT_MAX;
float dX, dZ;
dX = (x - (ix*TILE_SIZE))/TILE_SIZE;
dZ = (z - (iz*TILE_SIZE))/TILE_SIZE;
float y;
float h1, h2, h3, h12, h13;
if((ix+iz)%2==0) //»ç°¢ÇüÀÌ/¸ð¾ç..
{
h1 = m_pMapData[ix*m_ti_MapSize + iz].fHeight;
h3 = m_pMapData[(ix+1)*m_ti_MapSize + (iz+1)].fHeight;
if (dZ > dX) //ÀÂÊ »ï°¢Çü..
{
h2 = m_pMapData[ix*m_ti_MapSize + (iz+1)].fHeight;
h12 = h1 + (h2-h1) * dZ; // h1°ú h2»çÀÌÀÇ ³ôÀÌ°ª
h13 = h1 + (h3-h1) * dZ; // h1°ú h3»çÀÌÀÇ ³ôÀÌ°ª
y = h12 + ((h13-h12) * (dX/dZ)); // ã°íÀÚ ÇÏ´Â ³ôÀÌ°ª
return y;
}
else //¾Æ·¡ÂÊ »ï°¢Çü..
{
if(dX==0.0f) return h1;
h2 = m_pMapData[(ix+1)*m_ti_MapSize + iz].fHeight;
h12 = h1 + (h2-h1) * dX; // h1°ú h2»çÀÌÀÇ ³ôÀÌ°ª
h13 = h1 + (h3-h1) * dX; // h1°ú h3»çÀÌÀÇ ³ôÀÌ°ª
y = h12 + ((h13-h12) * (dZ/dX)); // ã°íÀÚ ÇÏ´Â ³ôÀÌ°ª
return y;
}
}
else if ((ix+iz)%2==1) //»ç°¢ÇüÀÌ ¿ª½½·¹½¬ ¸ð¾ç..
{
h1 = m_pMapData[(ix+1)*m_ti_MapSize + iz].fHeight;
h3 = m_pMapData[ix*m_ti_MapSize + (iz+1)].fHeight;
if ((dX+dZ) > 1.0f) //ÀÂÊ »ï°¢Çü..
{
if(dZ==0.0f) return h1;
h2 = m_pMapData[(ix+1)*m_ti_MapSize + (iz+1)].fHeight;
h12 = h1 + (h2-h1) * dZ;
h13 = h1 + (h3-h1) * dZ;
y = h12 + ((h13-h12) * ((1.0f-dX)/dZ));
return y;
}
else //¾Æ·¡ÂÊ »ï°¢Çü..
{
if(dX==1.0f) return h1;
h2 = m_pMapData[ix*m_ti_MapSize + iz].fHeight;
h12 = h2+(h1-h2)*dX; // h1°ú h2»çÀÌÀÇ ³ôÀÌ°ª
h13 = h3+(h1-h3)*dX; // h1°ú h3»çÀÌÀÇ ³ôÀÌ°ª
y = h12 + ((h13-h12) * (dZ/(1.0f-dX)));
return y;
}
}
return -FLT_MAX;
}
_You_創建了地形莫名其妙,所以你告訴我們! – 2011-03-31 14:11:01
我只是用dll鉤住這個程序......我不知道如何創建地形。 – 2011-03-31 14:13:31
@ user439857:不知道地形的任何事情,我不能告訴你如何知道任何有關地形... – 2011-03-31 14:14:08