游戏编程笔记-起步(二)在窗口上绘图

本文介绍了Windows游戏编程的基础知识,重点讲解如何在窗口上进行绘图。通过创建设备上下文(DC)、位图(Bitmap)、画笔(Pen)和画刷(Brush)等,实现游戏中的绘图操作。文章提供了一个绘制地图网格的示例,帮助读者掌握基本的绘图API,如绘制矩形、填充区域和位图拷贝等。
摘要由CSDN通过智能技术生成

游戏编程笔记-起步(二)


2.在窗口上绘图


        看了我上面的分析,我想,很多朋友都迫不及待的想学这部分知识,原因是上面的知识实在太简单了,只要稍懂点算法的同胞们都可以看懂。关键是大家苦于英雄无勇武之地啊!学了n年的算法,做了n到算法题,却写不出一个如此简单的小游戏。

那好,让我们开始我们真正的游戏编程之旅吧!

1.概述

       在Windows上绘图方式,跟美术大师绘图差不多。美术绘画,首先要具备以下工具:画板,画布,画笔,画刷。同样,Windows上也有相关的概念。绘图设备DeviceContext(DC),位图Bitmap,画笔Pen,画刷brush。他们一一对应。

2.画板

       在Windows中被称作设备上下文(Device Context,DC),我习惯称之为绘图设备。但是Windows的“画板”与美术大师手中的“画板”不一样,Windows中的“画板”实质上是一个工具的集合体,将画布、画笔、画刷、绘画方式全部综合管理起来,然后,所有的绘画操作都将在这上面进行。

1)系统绘图设备。系统有默认的绘图,我们可以直接使用它进行一系列的绘图操作。

获取系统绘图设备:

HDC GetDC(
  HWND hWnd   // 窗口句柄。即指定获得那个窗口的绘图设备。
);

如:

HDC hDC = GetDC(g_hWnd);
Rectangle(hDC,0,0,100,100);//绘制矩形
....

使用完毕后要归还给窗口:

int ReleaseDC(
  HWND hWnd, // handle to window
  HDC hDC     // handle to DC
);


2)创建画板。通常我们不直接使用系统画板,因为系统画板直接和显示器关联,在上面一边画,就会一边显示到窗口,由于在绘制的时候,中间有时间差(我们可能经过若干次绘制,才绘制完一个地图),而游戏程序需要反复的擦除、重绘,所以常常会造成画面剧烈闪烁。为了解决这个问题,我们会创建一个辅助画板,在幕后绘制完毕后,一次性的将它显示到屏幕上,因为显示的时间非常快,所以就看不到闪烁。

创建辅助绘图设备:

HDC CreateCompatibleDC(
  HDC hdc
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值