游戏设计手札05
终于用GDI实现了人物在屏幕上行走的功能。
成功后发现其实方法挺简单的,只是这个方法几乎没看到有人用,于是。。折磨初学者哎。。差点就摆弄DirectDraw了,幸好我多坚持了那么些。
在屏幕上希望的位置显示硬盘上某个图片的某个希望的部分的方法:
1 {
2 HDC hDC = GetDC(hwnd);
3 HDC memDC = CreateCompatibleDC ( hDC );//创建兼容DC
4 HBITMAP hbmp = (HBITMAP)LoadImage(0,".\\PLAYER.BMP", IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_LOADFROMFILE);
5 SelectObject(memDC,hbmp);
6 BitBlt(hDC,g_screenx/2-16,g_screeny/2-24,32,48,memDC,32*i,48*j,SRCCOPY);
7 DeleteObject(hbmp);
8 ReleaseDC(hwnd,hDC);
9 DeleteDC(memDC);
10
11 }
2:获取当前DC:hDC
3:创建兼容DC:memDC
4:用LoadImage函数在硬盘上载入bmp图片,得到HBITMAP:hbmp
5:将memDC与hbmp关联,相当于把图片放到memDC上
6:用BitBlt函数将memDC上图像的相应部分复制到当前DC上,此时便完成显示功能,至于在哪显示哪个部分,由该函数的参数确定
7、8、9:释放,其中9处不能用ReleaseDC
到此总算是又迈出了艰难的一步,明天开始尝试绘制地图。