📄 游戏程式设计指南(hoho篇) lesson3.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www.gameres.com/HoHo/Guide/Lesson3.htm -->
<HTML><HEAD><TITLE>游戏程式设计指南(HoHo篇) Lesson3 - GameRes.com</TITLE>
<META content=zh-cn http-equiv=Content-Language>
<META content="MSHTML 5.00.3700.6699" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId>
<META content="text/html; charset=gb2312" http-equiv=Content-Type></HEAD>
<BODY aLink=#ff9900 bgColor=#000000 leftMargin=0 link=#ff9900 text=#ffffff
topMargin=0 vLink=#ff9900><FONT face=Arial>
<TABLE border=0 borderColor=#111111 cellPadding=0 cellSpacing=0 id=AutoNumber1
style="BORDER-COLLAPSE: collapse" width="100%">
<TBODY>
<TR>
<TD width="100%"><A href="http://www.gameres.com/"
title="中国游戏开发技术资源网 - GameRes.com"><IMG border=0 height=47
src="游戏程式设计指南(HoHo篇) Lesson3.files/titlesmall.jpg" width=200></A></TD></TR>
<TR>
<TD width="100%"> </TD></TR>
<TR>
<TD width="100%">
<DIV align=center>
<CENTER>
<TABLE border=0 cellPadding=0 cellSpacing=0 id=AutoNumber2
style="BORDER-COLLAPSE: collapse" width="85%">
<TBODY>
<TR>
<TD bgColor=#151631 width="100%">
<P align=right><FONT size=1>林德辉(Sea_Bug)
</FONT></P></TD></TR>
<TR>
<TD width="100%">
<P align=center><FONT size=1> </FONT><BR><FONT
color=#ffffee><B>游戏程式设计指南(HoHo篇)<BR>Lesson 3 —
图形加载篇</B></FONT></P></TD></TR>
<TR>
<TD width="100%"> </TD></TR>
<TR>
<TD width="100%"><FONT size=4><B>序</B></FONT><FONT
size=2><BR><BR> 通过Lesson1和Lesson2的介绍说明,我们的游戏程序框架基本上已经具备了初步形态,同时也完成图形部分的初始化工作,接下来我们来了解一下利用HoHo引擎,游戏是如何将图像文件的数据装载到内存中;HoHo支持多种标准的图形格式文件,其中有:BMP、TGA、JPG,这三种格式概括了图形常用的三种类型,其中BMP格式是最为普通的类型,它不具备压缩能力,我们可以这样考虑,BMP就是一块平整的图形存储空间,图形数据被一莫一样的保存着;TGA文件与BMP类似,它同样不具备压缩能力,但它特殊的地方是具备图形的通道数据保存,通道数据可以制作出很多图形特效;JPG文件跟以上两种有比较大的区别,它的最大特点是支持压缩,而且压缩效率非常之高,缺点是它的图像压缩是有损失精度的,不过对于游戏中一些登入界面以及一些不需要很标准细微的图像还是有很广泛的应用范围。<BR><BR>注:现在新的BMP结构中也开始对32bit(带Alpha通道)的支持,HoHo引擎不对此类图形格式的支持。<BR><BR>HoHo所支持的图形格式:<BR> 256色(8
Bit)的BMP格式图像。<BR> 真彩色(24 Bit)</FONT><FONT face=Arial
size=2>的BMP格式图像。<BR> </FONT><FONT face=Arial size=2>真彩色(24
Bit)的TGA格式图像,此格式的TGA不带Alpha通道数据。<BR> 真彩色(32 Bit)的TGA</FONT><FONT
face=Arial size=2>格式图像,此格式的TGA自带Alpha通道数据。<BR> 真彩色(24
Bit)的JPG格式图像。<BR>以上图形格式均可以通过PhotoShop等一些标准作图软件制作。<BR></FONT><FONT
size=2><BR><BR></FONT><B>目录:</B><BR> <A
href="http://www.gameres.com/HoHo/Guide/Lesson3.htm#准备工作"
target=_self>准备工作</A><BR> <A
href="http://www.gameres.com/HoHo/Guide/Lesson3.htm#载入图像"
target=_self>载入图像</A><BR><FONT
size=2> 载入BMP<BR> 载入TGA<BR> 载入JPG</FONT><BR> <A
href="http://www.gameres.com/HoHo/Guide/Lesson3.htm#绘制图像"
target=_self>绘制图像</A><BR> <A
href="http://www.gameres.com/HoHo/Guide/Lesson3.htm#图像释放"
target=_self>图像释放</A><FONT size=2><BR></FONT><FONT face=Arial><FONT
face=Arial size=2><BR><BR><BR></FONT><FONT face=Arial size=4><B><A
name=准备工作>准备工作</A></B></FONT><FONT face=Arial
size=2><BR><BR> 在介绍如何载入图像资源之前,我们先来看看一个新手经常遇到的问题,那就是调试环境下程序的执行路径问题,在VC.Net的IDE编辑环境中直接用F5来执行调试程序,这时候VC.Net并不知道你真正需要的路径在哪里,换句话说,就是可能会产生你的程序和你程序需要载入的数据路径不符合,这样就会导致你程序无法打开你所需要的文件,这时候,你就需要对工程的执行路径进行设置,具体如下:<BR><BR> </FONT></FONT>
<DIV align=center>
<CENTER>
<TABLE border=1 borderColor=#002846 cellPadding=0 cellSpacing=0
id=AutoNumber8 style="BORDER-COLLAPSE: collapse" width="80%">
<TBODY>
<TR>
<TD align=middle bgColor=#001824 width="100%"><FONT
size=2>打开工程属性页</FONT></TD></TR>
<TR>
<TD align=middle width="100%"><FONT size=1> <BR><IMG
border=0 height=491
src="游戏程式设计指南(HoHo篇) Lesson3.files/Lesson3_4.gif"
width=367><BR> </FONT></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT face=Arial><FONT face=Arial
size=2>然后在工作路径中填入所指定的路径:</FONT></FONT></P>
<DIV align=center>
<CENTER>
<TABLE border=1 borderColor=#002846 cellPadding=0 cellSpacing=0
id=AutoNumber9 style="BORDER-COLLAPSE: collapse" width="80%">
<TBODY>
<TR>
<TD align=middle bgColor=#001824 width="100%"><FONT
size=2>修改工作路径</FONT></TD></TR>
<TR>
<TD align=middle width="100%"><FONT size=1> <BR><IMG
border=0 height=454
src="游戏程式设计指南(HoHo篇) Lesson3.files/Lesson3_5.gif"
width=644><BR> </FONT></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT face=Arial><FONT face=Arial
size=2>好了,这样就可以把工作路径设置好,接下来我们就看看如何通过HoHo来载入图形数据。<BR><BR><BR><BR></FONT><FONT
face=Arial size=4><B><A name=载入图像>载入图像</A></B></FONT><FONT
face=Arial
size=2><BR><BR> 终于到了实质的部分了,前面一大部分都只是在介绍游戏程序的初始化还有一些所需要注意的细节,在这节中让我们来真正的从图形文件中载入图像数据,呵呵,实际上这部分是相当简单了,我们来看看载入图形数据的步骤:<BR><BR> 首先,我们需要声明图形指针句柄,不要问我为什么需要这个东西,多看看C++的书籍你就能够明白,如果你实在不明白,那你就跟着做就行,将来会明白的(但愿如此!)。我们看看下面代码段:<BR><BR></FONT></FONT></FONT><FONT
color=#99ccff face=宋体 size=2> LP_BITMAPX g_pBitmapBMP =
NULL;<BR> LP_BITMAPX g_pBitmapTGA = NULL;<BR> LP_BITMAPX
g_pBitmapJPG = NULL;</FONT></P><FONT face=Arial>
<DIV align=center>
<CENTER>
<TABLE border=1 borderColor=#002846 cellPadding=0 cellSpacing=0
id=AutoNumber10 style="BORDER-COLLAPSE: collapse" width="80%">
<TBODY>
<TR>
<TD align=middle bgColor=#001824 width="100%"><FONT
size=2>声明指针</FONT></TD></TR>
<TR>
<TD align=middle width="100%"><FONT size=1> <BR><IMG
border=0 height=305
src="游戏程式设计指南(HoHo篇) Lesson3.files/Lesson3_1.gif"
width=297><BR> </FONT></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT face=Arial><FONT face=Arial
size=2><BR><BR>这里我们定义了3个指针,LP_BITMAPX是HoHo内部定义的一个指针结构,这个东西包含了HoHo所需要的图形资源的数据;这3个指针是我们接下来要载入的三个图像的操作句柄;<BR><BR> 接下来我们来看看载入图形文件数据的代码片段:<BR><BR></FONT></FONT></FONT><FONT
color=#99ccff face=宋体 size=2> g_pBitmapJPG =
GetGraphics()->CreateBitmapFromJPG( "background.jpg"
);<BR> g_pBitmapTGA = GetGraphics()->CreateBitmapFromTGA(
"tree.tga" );<BR> g_pBitmapBMP =
GetGraphics()->CreateBitmapFromBMP( "character.bmp"
);</FONT></P><FONT face=Arial>
<DIV align=center>
<CENTER>
<TABLE border=1 borderColor=#002846 cellPadding=0 cellSpacing=0
id=AutoNumber11 style="BORDER-COLLAPSE: collapse" width="80%">
<TBODY>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -