C++ GDI游戏编程之三缓冲技术

对于c++的Windows游戏编程,他的基本原理我总结了一下,主要是由三缓冲体系的创建,然后载入位图到句柄中,想要绘制什么就先SelectObject然后接着写上对应的绘图函数。代码如下


HDC g_hdc=NULL,g_mdc=NULL,g_bdc=NULL;//先创建三个HDC缓冲对象
HBITMAP hBitmap;

g_hdc=GetDC(hWnd);//获取设备环境句柄
g_mdc=CreateCompatibleDC(g_hdc);//创建一个和g_hdc兼容的内存DC</span>
g_bdc=CreateCompatibleDC(g_hdc);
hBitmap=CreateCompatibleBitmap(g_hdc,800,600);//创建一个很窗口兼容的空位图对象


SelectObject(g_mdc,hBitmap);//将位图放在g_mdc中


这几部就是三缓冲体系的创建.接着创建好了好了要怎么使用呢。比如我们要将一张图片绘制到窗口,我们只需这样

electObject(g_bdc,bitmap);//bitmap代表位图对象,指将要绘制的图片.放入g_bdc中.
Bitble(g_mdc,0,0,WIN_WIDTH,WIN_HIGHT,g_bdc,0,0,SRCCOPY);//将g_bdc放到g_mdc中
	Bitble(g_hdc,0,0,WIN_WIDTH,WIN_HIGHT,g_mdc,0,0,SRCCOPY);//最后将g_mdc放入g_hdc中,这样就可以将图片显示在窗口中
最后记得程序结束时释放资源,DeleteDC();


总的来讲就是使用SelectObject()将图片放到g_bdc中,再将g_bdc放到g_mdc中,最后将g_mdc放到g_hdc中这样就可以实现三缓冲体系绘图。


三缓冲体系可以让画面显示得更加平滑,其实就是在双缓冲的基础上再用CreateCompatibleDC再创建一层缓冲区,这样用起来非常方便.


三缓冲也很简单,也没什么好讲的,主要是多运用。还有对windowsAPI绘图熟悉,这样写个2D游戏是不困难的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值