如何制作游戏中的大地图?
首先解决一张小地图平铺成为大地图的做法。
我的代码是
------------
//下面是全局变量
HBITMAP bitBK;
BITMAP bitDes;
HDC MemDC;
HDC dc0;//临时的
---------------
MemDC=CreateCompatibleDC(NULL);
dc0=CreateCompatibleDC(NULL);
bitBK=(HBITMAP)LoadImage(theApp.m_hInstance,"桌面BMP.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
GetObject(bitBK,sizeof(HBITMAP),&bitDes);
SelectObject(MemDC,bitBK);
int hi=0,wi=0;
for(;hi<2;hi++)
for(;wi<2;wi++)
BitBlt(MemDC,wi*bitDes.bmWidth,hi*bitDes.bmHeight,
(wi+1)*bitDes.bmWidth,(hi+1)*bitDes.bmHeight,
dc0,bitDes.bmWidth,bitDes.bmHeight,SRCCOPY);
DeleteDC(dc0);
在OnPaint中的代码是
RECT rc;
HDC tmpdc;
::GetClientRect(this->m_hWnd,&rc);
tmpdc=::GetDC(this->m_hWnd);
::BitBlt(tmpdc,0,0,rc.right-rc.left,rc.bottom-rc.top,MemDC,bitDes.bmWidth*2,2*bitDes.bmHeight,SRCCOPY);
::ReleaseDC(this->m_hWnd,tmpdc);
------------
想把dc0分4次考到MemDC中,结果还是只显示左上角一张图片,。
问下这是不是游戏中实现大地图的正确的思路?
如果是以上代码有什么错误?