45度的坐标转换成屏幕坐标

//斜45度的坐标转换成屏幕坐标
    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://xdotnet.cnblogs.com

本文可以随意转载,摘抄等非商业用途。

为了尊重作者成果,在转载和摘抄的时候请留下作者名称和出处。

原文地址:https://www.cnblogs.com/xdotnet/p/2097878.html