游戏设计手札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

到此总算是又迈出了艰难的一步,明天开始尝试绘制地图。

原文地址:https://www.cnblogs.com/cybersword/p/2330312.html