|
// 这个是2.5D等角45°游戏里的一段代码
// 一个tile是一个菱形的格子,地图是透过很多个tile拼接起来的
// 这个函数是通过传入的地图的像素来创建坐标系统
bool CTheodolite::Create(int nWidthPixel, int nHeightPixel)
{
// 地图像素宽度
m_dwMapWidthPixel = nWidthPixel;
// 地图像素高度
m_dwMapHeightPixel = nHeightPixel;
int nCol = (nWidthPixel + TILE_WIDTH_PIXEL - 1) >> 6/*一个tile占64像素宽*/;
int nRow = (nHeightPixel + TILE_HEIGHT_PIXEL - 1)>> 5/*一个tile占32像素高*/;
// 左上角第一个TILE的y向偏移
m_yLeftTopYOffset = nRow - 1;
// 地图tile宽度
m_dwMapWidthTile = nRow + nCol; // 谁能帮忙解释一下地图的tile宽的为什么是这两个值的和
// 地图tile高度
m_dwMapHeightTile = nRow + nCol - 1; // 同上
// 地图宫格高度
m_dwMapWidthGrid = (m_dwMapWidthTile + 16 - 1) >> 4 /*一个宫格占16个tile*/;
// 地图宫格宽度
m_dwMapHeightGrid = (m_dwMapHeightTile + 16 - 1) >> 4/*一个宫格占16个tile*/;
return true;
}
|
|