`
yzd
  • 浏览: 1858651 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

【Visual C++】游戏开发笔记之五——游戏画面绘图(二)绘制位图

 
阅读更多


以游戏文件来说,使用的位图数量相当多,因此都会先将位图存成文件,等到程序需要时再将文件加载到窗口中。将位图从文件加载带绘图窗口中必须经过一下几个步骤。

<1>从文件中加载位图对象

<2>建立一个与窗口DC兼容的内存DC

<3>内存DC只用步骤1中所建立的位图对象

<4>将内存DC的内容粘贴到窗口DC中,完成显像操作。


下面进行这四个步骤的详细说明:


步骤一:加载位图

要从文件加载位图,常常使用LoadImage()函数。

HANDLELoadImage(

HINSTANCEhinst,//包含目标位图的DLL或exe文件的模块句柄

LPCTSTRlpszName,

UINTuType,

intcxDesired,

intcyDesired,

UINTfuLoad

);

下面是该函数参数的详细说明。

▲HINSTANCE来源实体:包含位图所在的实体,若要加载的位图在硬盘或者资源文件中,此项设置为"NULL"。

▲LPCTSTR名称:要加载的位图所在的路径与文件名或者资源名称

▲UINT位图类型:加载位图的类型,有下面三种:

★IMAGE_BITMAP:加载的位图为一般图文件,扩展名为".bmp"

★IMAGE_CUSOR:加载的位图为光标图标,扩展名为".cur"

★IMAGE_ICON:加载的位图为图标,扩展名为".ico"

▲int加载宽度:位图加载的宽度,单位为像素

▲int加载高度:位图加载的高度,单位为像素

▲UINT加载方式:设定位图的加载方式,若是从文件中加载位图,则设为"LR_LOADFROMFILE"


步骤二:建立与窗口DC兼容的内存DC

我们调用CreateCompatible()函数来建立内存DC

HDCCreateCompatibleDC(HDChdc);//建立兼容DC

函数中输出的唯一参数就是要与内存DC兼容的目的DC

跟窗口DC一样,内存DC使用后也必须进行释放的操作,释放内存DC所调用的函数为DeleteDC()

DeleteDC(HDCDC名称);//释放DC


步骤三:选用位图对象

位图对象是GDI的6种对象之一,内存DC选用位图对象的方法和前面介绍的选用画笔或画刷的方式相同,都是通过调用SelectObject()函数来实现。


步骤四:贴图

把内存DC中的位图复制到显示的DC上,即"贴图"。这个操作使用的函数是BitBlt(),后面我们会经常用到他。这个函数的定义如下

BOOLBitBlt(

intx,//目的DCx坐标

inty,//目的DCy坐标

intnWidth,//贴到目的DC的宽度

intnHeight,//贴到目的DC的高度

CDC*pSrcDC,//来源DC

intxSrc,//来源DCx坐标

intySrc,//来源DCy坐标

DWORDdwRop//贴图方式();

);



下面我们用一个实例来看看如何从文件中加载位图:



将bg.bmp图片放到该工程根目录下,然后进行编译并运行,就可以得到如下窗口:






笔记五到这里就结束了。


本节源代码请点击这里下载:【Visual C++】Code_Note_5


请大家继续关注【Visual C++】游戏开发笔记系列。

非常希望能与大家一起交流,共同学习和进步。

最后,谢谢大家一直的支持~~~

The end














分享到:
评论

相关推荐

    Visual C++ 编程技巧典型案例解析——图形图像处理与数据库篇

    《Visual C++ 编程技巧典型案例解析——图形图像处理与数据库篇》是针对使用Microsoft的Visual C++开发环境进行图形图像处理和数据库管理的实践指南。这本书深入浅出地介绍了如何利用Visual C++的强大功能来解决这两...

    【Visual C++】游戏开发笔记之六-游戏画面绘图(三)透明特效的制作方法.pdf

    【Visual C++】游戏开发笔记之六-游戏画面绘图(三)透明特效的制作方法主要探讨了如何在2D游戏中实现透明效果。透明效果在游戏画面中至关重要,它可以使得游戏元素与背景融合,提高视觉体验。在本教程中,作者毛星云...

    【Visual C++】游戏开发笔记4

    【Visual C++】游戏开发笔记4主要探讨了使用GDI(图形设备接口)进行游戏画面绘图的基础知识。GDI是Windows API中的一个重要组件,负责管理所有显像设备的图像显示和输出。本文将深入介绍如何利用GDI进行游戏画面的...

    visual c++ DirectX开发游戏 仿超级玛丽 超级马里奥.zip

    《使用Visual C++和DirectX开发游戏:仿超级玛丽》 在游戏开发领域,Visual C++和DirectX是一对常见的组合,尤其适用于2D和3D游戏的制作。本项目以经典游戏“超级玛丽”为蓝本,展示了如何利用这两款工具进行游戏...

    【Visual C++】Code_Note_5

    博文的配套源码 《【Visual C++】游戏开发笔记之五——游戏画面绘图(二)绘制位图》 ,原文地址为http://blog.csdn.net/zhmxy555/article/details/7335103, 源码编译环境为vs2010. 我的博客地址是...

    visual c++ 实践与提高—图形图像编程篇

    在《Visual C++ 实践与提高—图形图像编程篇》中,我们主要探讨的是如何使用Microsoft的Visual C++开发环境进行高效且富有表现力的图形和图像编程。这个主题涵盖了许多关键知识点,包括Windows API、GDI(Graphics ...

    Visual C++开发实例大全 基础卷 源码

    《Visual C++开发实例大全 基础卷 源码》是一本专注于初学者和进阶者学习Visual C++编程的实践性书籍。通过提供第1章节至第9章节的源代码,这本书旨在帮助读者深入理解Visual C++的基础概念和技术,同时也提供了丰富...

    Visual C++ 实践与提高—图形图像编程篇

    在《Visual C++ 实践与提高—图形图像编程篇》中,我们主要探讨的是如何使用Microsoft的Visual C++开发环境进行高效且丰富的图形图像编程。这个主题涵盖了从基础的GDI(Graphics Device Interface)到更高级的...

    【Visual C++】游戏编程学习笔记五:单一背景滚动

    在游戏开发中,单一背景滚动是一项基础且重要的技术,它为玩家创造了一个动态的游戏环境,使得游戏场景在屏幕上的移动显得更加生动和自然。在【Visual C++】中实现这一功能,可以为初学者提供宝贵的编程经验,同时也...

    visual c++ GDI开发的游戏 连连看 源代码

    本篇文章将深入探讨利用Microsoft的Visual C++和GDI(Graphics Device Interface)技术开发的一款经典游戏——连连看。GDI是Windows操作系统中的一个核心组件,用于处理图形和文本输出,而Visual C++则是一款强大的...

    【Visual C++】游戏编程笔记四:透明动画实现

    在Visual C++环境中,游戏编程涉及许多技术,其中之一就是透明动画的实现。本文将深入探讨如何使用Visual C++来创建具有透明效果的动画,这对于创建复杂的2D或3D游戏场景至关重要。 首先,透明动画的核心在于Alpha...

    打开位图并缩放显示用Visual c++实现

    在本文中,我们将深入探讨如何使用Visual C++的MFC(Microsoft Foundation Classes)库来实现打开位图并进行缩放显示的功能。MFC是微软提供的一套C++类库,它封装了Windows API,使开发者能更方便地创建Windows应用...

    Visual C++图形编程技巧与实例

    Visual C++是由微软开发的一款集成开发环境(IDE),它为C++编程语言提供了强大的支持,包括代码编辑、调试、构建管理等功能。在图形编程方面,Visual C++利用MFC(Microsoft Foundation Classes)库,为开发者提供...

    Visual C++ 6.0实用教程代码

    《Visual C++ 6.0实用教程代码》是一份针对初学者和中级开发者的资源,旨在帮助他们深入理解和掌握Visual C++ 6.0编程环境。这个教程包含了22个章节,每个章节都对应着一个特定的主题,通过实际的代码示例来教授编程...

    Visual C++图形图像编程技巧

    《Visual C++图形图像编程技巧》是一本由丁有和编著的专业图书,主要探讨了如何利用Microsoft的Visual C++开发环境进行图形图像处理和编程。出版于2000年,这本书对于当时的程序员和爱好者来说,是学习图形界面设计...

    位图变换—visual c++

    MFC是微软提供的一套C++类库,用于简化Windows应用程序开发。下面我们将深入探讨位图变换的相关知识点。 1. **位图基础**: - **位图(Bitmap)**:位图是一种像素图像,每个像素都有自己的颜色信息。在Windows...

    Visual C++游戏编程基础

    ### Visual C++游戏编程基础 #### 一、窗口 在使用Visual C++进行游戏编程时,窗口是构建用户界面的基础。本章节将详细介绍如何利用Visual C++和MFC(Microsoft Foundation Classes)创建、管理和操作窗口。 ####...

    Visual C++6.0\让你的软件界面更漂亮.doc

    为了实现自绘窗口的功能,开发者需要掌握一些基本的绘图技术,比如使用`CBitmap`类加载和绘制位图: ```cpp CBitmap *pBitmap = new CBitmap; BITMAP BmpInfo; CBitmap *pOldBitmap; CDC *pDisplayMemDC = new CDC;...

    精通Visual C++图像编程 精通Visual C++图像编程

    在Visual C++中,开发者可以利用GDI函数来绘制图形和文本,实现复杂的绘图操作。 2. **GDI+**:作为GDI的升级版,GDI+提供了更多的矢量图形和图像处理功能,支持贝塞尔曲线、透明度、旋转等效果。通过GDI+,开发者...

Global site tag (gtag.js) - Google Analytics