|
|
发表于 2004-10-5 16:12:00
|
显示全部楼层
Re: Re:关于游戏地图图块显示的问题(请高手赐教)
要先算出屏幕左上角位于地图的哪一点(不是哪一格)
//先放些变量
RECT rt;
int x,y;
int x2,y2;
int DX,DY;
int i,j;
如果你想画X:0.5到10.5格,Y:1.5到11.5格
也就是屏幕左上角位于
dx=16,dy=48;
两个方向各画10格
width=10,height=10;
DX=dx>>5,DY=dy>>5;
for(j=0;j<=height;j++) //我实际是画11个
{
y2 = j+DY;
if(y2<0)
continue;
if(y2>=MapHeight)
break;
y = y2<<5 - dy;
for(i=0;i<=width;i++)
{
x2 = i+DX;
if(x2<0)
continue;
if(x2>=MapWidth)
break;
x = x2<<5 - dx;
Drawimg(x,y,map[y2][x2]);
}
}
从我的程序里硬搬了一块,写得挺乱,也没测试。不知道对不对。 |
|