//斜45度的坐标转换成屏幕坐标
inline void MIToMD(int Dx,int Dy,int &Ix,int
&Iy)
{
Ix=(TileWidth>>1)*(Dx-Dy);//转换为绝对坐标x
Iy=(TileHeight>>1)*(Dx+Dy);//转换为绝对坐标y 大菱形
}
inline void MIToMD(int Dx,int Dy,int &Ix,int
&Iy)
{
Ix=(TileWidth>>1)*(Dx-Dy);//转换为绝对坐标x
Iy=(TileHeight>>1)*(Dx+Dy);//转换为绝对坐标y 大菱形
}
//屏幕坐标转换成斜45度的坐标
inline void MDToMI(int Ix,int Iy,int &Dx,int
&Dy)
{
Dx=int(0.5*((Iy<<1)+Ix)/(TileWidth>>1));
Dy=int(0.5*((Iy<<1)-Ix)/(TileWidth>>1));
}
其中
#define TileWidth 32 //每个Tile的宽
#define TileHeight 16
//每个Tile的高
本文转自网魂小兵博客园博客,原文链接:http://www.cnblogs.com/xdotnet/archive/2011/07/05/2097878.html,如需转载请自行联系原作者