?? 游戲程式設計指南(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++的書籍你就能夠明白,如果你實在不明白,那你就跟著做就行,將來會明白的(但愿如此?。N覀兛纯聪旅娲a段:<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 + -