![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《Windows游戏编程从零开始》读书笔记
h549570564
这个作者很懒,什么都没留下…
展开
-
第四章 Windows游戏图形基础
关键字:HPEN、HBRUSH、HFONT、HBITMAP 在本章中,主要讲述了一些GDI的基本操作。其中有:DC的基本概念、GDI基本绘图(线条、矩形)、文字输出、位图绘制。除了GDI的基本操作之外,还讲了一些随机数的有关概念和函数。 GDI,即Graphics Device Interface,它是Windows图形显示程序与物理设备(显示屏)之间的桥梁,在原创 2015-01-03 14:12:15 · 480 阅读 · 0 评论 -
设置背景图循环滚动
在编写程序时,部分程序的背景是静止的,而部分程序则要求背景是运动的(类似天天酷跑)。如果需要让背景图运动,我们就需要图片循环滚动技术。 其实这个原理非常简单。假设背景图是从左往右运动的,那么只需要让背景图从左往右一点一点显示出来即可,这样就达到了背景图运动的目的。 那么如何实现让背景图一点一点显示出来呢,只需要设置一个变量OFFSET即可,这个变量从0到WI原创 2015-03-09 21:26:32 · 3801 阅读 · 0 评论 -
设定鼠标限定在窗口内部
由于设定鼠标移动区域的函数需要屏幕坐标,因此我们先取得窗口坐标,然后将窗口坐标转化为屏幕坐标,最后设定范围即可。 设定鼠标光标限制在窗口内容区域的基本代码为:RECT rect;POINT lt, rb;GetClientRect(hwnd, &rect); //取得窗口内部矩形(窗口坐标)//将矩形左上角存入lt中lt.x = rect.left;lt.y =原创 2015-03-08 17:17:17 · 3257 阅读 · 0 评论 -
利用swprintf_s快速加载对象
当一个程序中有多个名字类似资源时,比如11.bmp,22.bmp,33.bmp…如果直接一个一个的装载到位图句柄中比较麻烦,这时我们就可以利用swprintf_s将文件名写入字符串中,然后直接装载字符串对应的文件即可。 举个例子: 在程序中,有1.bmp,2.bmp,...,10.bmp,我们新建一个字符串FILENAME装载位图的名字,然后直接利用FILENA原创 2015-03-08 16:13:58 · 1217 阅读 · 0 评论 -
利用空位图对象实现连贯动画显示
实现一个人物从左走到右的动画效果,我发现了一些问题。 还是使用三缓冲机制,首先我定义了三个句柄:g_hdc、g_mdc、g_bufdc。先在g_bufdc中分别载入每帧的人物图和背景图,然后将g_bufdc中人物图和背景图复制到g_mdc中,最后将最终的每帧图放入g_hdc中。但是,这时出现了一个问题。那就是载入下一帧的位图时,上一帧的图像还在那里。 最后,我重原创 2015-03-08 17:04:55 · 705 阅读 · 0 评论 -
Windows窗口程序闪退问题
今天进行Windows编程中遇到了一个问题,程序执行后直接闪退。在仔细查看好久后,发现是WinMain函数中消息循环过程出现了错误。本来应该是while却写成了if: While( msg.message != WM_QUIT) {............ } 结果却写成了 If(msg.message != W原创 2015-03-03 20:38:55 · 2998 阅读 · 0 评论 -
Windows窗口程序点叉后程序仍在进程中
今天在Windows编程中又遇到了之前曾经遇到过的问题。当点叉关闭一个程序时,虽然它在桌面上消失了但仍在进程中。就像这样:正常了。最后,我发现问题出在WinMain()函数中的窗口消息处理过程上面。PeekMessage()函数在调用时参数出现了错误,第二个参数本应是0,但我写成了hwnd。当把hwnd改成0后程序就一切错误调用:if( PeekMessage( &原创 2015-03-03 20:04:05 · 1076 阅读 · 0 评论 -
对窗口过程函数WndProc()的一点理解
函数原型: LRESULTCALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 窗口过程函数决定了当一个窗口从外界接收到不同的信息时,所采取的不同反应,即主要用于处理发送给窗口的信息。hwnd是要处理窗口的句柄;message是消息ID,代表了不同的消息类型;wPara原创 2015-03-03 20:45:20 · 18125 阅读 · 0 评论 -
保持代码优美的一个小方法
在每个函数前面加上一定字数的描述,这样代码既美观又便于查阅。例如: //-----------------------------------【WndProc( )函数】-------------------------------------- // 描述:窗口过程函数WndProc,对窗口消息进行处理 //---------原创 2015-03-03 20:44:06 · 465 阅读 · 0 评论 -
第三章 Windows编程基础
在这一章中,主要讲述了Windows下创建窗口的基本步骤和其中的有关问题。在Windows的消息处理机制中,窗口过程函数被调用的过程如下所示:第一步:在进行窗口类的设计时,将窗口过程函数的地址赋给lpfnWndProc成员变量。第二步:调用RegisterClass(&wndClass)注册窗口类,那么系统就有了我们所编写的窗口过程函数的地址。第三步:当应用程序接受到某一窗口的消息原创 2015-01-02 14:08:33 · 513 阅读 · 0 评论 -
游戏人物跟随鼠标移动的实现
在游戏编程中,会遇到一个简单的问题,那就是鼠标移动人物也向鼠标移动的方向移动。其实,它非常简单。 在程序中,我们设置两个不同的点point1、point2。point1保存人物贴图的坐标,而point2保存鼠标的坐标。设定每次贴图时,贴图坐标point1都会以10个或其它单位缓缓向point2靠拢(即x、y坐标进行相应的加减),直至坐标相同。这样在每帧的绘画中,就实现了移动的动画原创 2015-03-09 21:28:06 · 4131 阅读 · 1 评论