?? 游戲程式設(shè)計指南(hoho篇) lesson2.htm
字號:
size=1> <BR><IMG border=0 height=224
src="游戲程式設(shè)計指南(HoHo篇) Lesson2.files/CreateAPP_9_1.gif"
width=423><BR> </FONT></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT face=Arial><FONT face=Arial
size=2><BR> 這里我們使用g_bActive來作為標(biāo)記,如果這個變量值是真,那么當(dāng)前窗口處于激活狀態(tài),否則就是沒有激活,消息代碼片斷如下:<BR><BR></FONT></FONT><FONT
color=#99ccff face=宋體 size=2> case WM_ACTIVATE: //
窗口的活動狀態(tài)<BR> {<BR>
switch((LOWORD(wParam)))<BR>
{<BR> case
WA_ACTIVE:<BR> case
WA_CLICKACTIVE:<BR>
g_bActive =
true;<BR>
break;<BR> case
WA_INACTIVE:<BR>
g_bActive =
false;<BR>
break;<BR>
default:<BR>
break;<BR> }<BR><BR> if(
GetGraphics() != NULL
)<BR>
GetGraphics()->Restore();<BR> }<BR> break;</FONT><FONT
face=Arial><FONT face=Arial size=2><BR> </FONT>
<DIV align=center>
<CENTER>
<TABLE border=1 borderColor=#002846 cellPadding=0 cellSpacing=0
id=AutoNumber6 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=352
src="游戲程式設(shè)計指南(HoHo篇) Lesson2.files/CreateAPP_10.gif"
width=328><BR> </FONT></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT size=2>這部分處理只是</FONT><FONT face=Arial
size=2>通過消息響應(yīng)來為g_bActive進(jìn)行狀態(tài)的變化,同時會幫你進(jìn)行DDraw設(shè)備的重建,當(dāng)然,這部分HoHo已經(jīng)為你做好了,你可以不用考慮這些?,F(xiàn)在讓我們回頭來看看我們的游戲循環(huán),我們需要做一些處理,讓我們的程序在最小化(非激活狀態(tài))的時候節(jié)省點CPU資源,如圖:<BR> </FONT>
<DIV align=center>
<CENTER>
<TABLE border=1 borderColor=#002846 cellPadding=0 cellSpacing=0
id=AutoNumber7 style="BORDER-COLLAPSE: collapse" width="80%">
<TBODY>
<TR>
<TD align=middle bgColor=#001824 width="100%"><FONT
size=2>游戲循環(huán)</FONT></TD></TR>
<TR>
<TD align=middle width="100%"><FONT size=2> <BR><IMG
border=0 height=310
src="游戲程式設(shè)計指南(HoHo篇) Lesson2.files/CreateAPP_11.gif"
width=451><BR> </FONT></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT face=Arial
size=2>好了,經(jīng)過這樣的處理,已經(jīng)可以達(dá)到我們的要求,可能有些朋友要問,為什么要加一個Sleep(1)的操作?這里是利用Sleep(1)來將應(yīng)用程序的進(jìn)程系統(tǒng)資源占用率返回給系統(tǒng),你只要打開Windows自帶的任務(wù)管理器就可以看出兩者的差別。<BR><BR><BR><BR></FONT><B><A
name=讓游戲程序進(jìn)入全屏方式>讓游戲程序進(jìn)入全屏方式</A></B><FONT face=Arial
size=2><BR><BR> 說了半天都是圍繞著游戲程序窗口模式的操作,現(xiàn)在我們來考慮一下如何讓我們的游戲程序進(jìn)入全屏狀態(tài),真正的游戲狀態(tài)。使用HoHo要進(jìn)入全屏模式是相當(dāng)容易的,還記得Lesson1里面的初始化部分嗎?<BR><BR></FONT></FONT></FONT><FONT
color=#99ccff face=宋體 size=2> g_pDisplay = CreatePlane2D( hWnd,
800, 600, true );</FONT><FONT face=Arial><FONT face=Arial
size=2><BR><BR> 改為:<BR><BR></FONT></FONT><FONT color=#99ccff
face=宋體 size=2> g_pDisplay = CreatePlane2D( hWnd, 800, 600, false
);</FONT><FONT face=Arial><FONT face=Arial
size=2><BR><BR>是很容易吧!我想應(yīng)該不需要圖例了。 :-)<BR><BR><BR><BR></FONT><B><A
name=善尾工作,釋放數(shù)據(jù)>善尾工作,釋放數(shù)據(jù)</A></B><FONT face=Arial
size=2><BR><BR> 讓機(jī)器工作了那么久,應(yīng)該讓它休息一下了,我們程序的退出一定要記得把我們用到的東西還給系統(tǒng),雖然現(xiàn)在的操作系統(tǒng)會幫你收回,但是保持一個良好的習(xí)慣還是非常重要的,現(xiàn)在看看如何把HoHo釋放掉。<BR> 找到_tWinMain()函數(shù),或者說是主函數(shù)吧,只要在函數(shù)的結(jié)尾部分加入:<BR><BR></FONT></FONT><FONT
color=#99ccff face=宋體 size=2> SAFE_DELETE( g_pDisplay
);</FONT><FONT face=Arial
size=2><BR><BR>這樣就行了,是不是很簡單?執(zhí)行了這部操作,HoHo會幫助你將所使用的DirectX設(shè)備,包括圖像的數(shù)據(jù)資源都會自動釋放。<BR><BR><BR> 今天就寫到這里,一個初具形態(tài)的游戲窗口已經(jīng)基本上完成了,下一回我們要去了解如何載入并且繪制圖像,讓我們來美化游戲的面容。<BR><BR> 本教程到目前為止的<A
href="http://www.gameres.com/HoHo/Guide/Lesson2.zip">工程文件下載</A>。<BR> ?。ù藱n案不包含HoHo游戲引擎庫,如若程式無法執(zhí)行,請根據(jù)所使用的HoHo版本附帶的DLL庫文件替換程式所執(zhí)行目錄中的同名文件。)<BR><BR><BR><BR>Write
Date: 2003-08-0</FONT><FONT size=2>3</FONT><FONT face=Arial><FONT
face=Arial size=2><BR></FONT><FONT face=宋體
size=2>----------------------------------------------------------------<BR></FONT><FONT
face=Arial size=2> HoHo游戲引擎下載以及最新資訊請訪問 <A
href="http://www.gameres.com/HoHo">http://www.gameres.com/HoHo</A><BR>
未經(jīng)許可請勿轉(zhuǎn)載此系列教程,編寫:林德輝(Sea_Bug)<BR> Copyright ©
中國游戲開發(fā)資源網(wǎng)(GameRes.com) All Rights reserved</FONT><FONT face=宋體
size=2><BR>----------------------------------------------------------------</FONT><FONT
face=Arial size=2><BR> </FONT></FONT></P></TD></TR>
<TR>
<TD width="100%"> </TD></TR>
<TR>
<TD bgColor=#151631 width="100%">
<P align=right><FONT size=1><A
href="http://www.gameres.com/">GameRes</A> </FONT></P></TD></TR>
<TR>
<TD width="100%">
<P align=right>
<FORM>
<P align=right><FONT size=1> </FONT><BR><INPUT onclick=window.close() type=button value="關(guān) 閉 窗 口"></P></FORM></TD></TR></TBODY></TABLE></CENTER></DIV></TD></TR>
<TR>
<TD width="100%">
<P align=center><BR><FONT face=Arial></FONT><BR><BR><FONT
size=2>本站中所有文章以及圖形均為作者本人、公司所有,本站所有資訊僅供參考,若有任何損失本站概不負(fù)責(zé),請自行斟酌。<BR>Copyright
© 2001-200? 中國游戲開發(fā)資源網(wǎng)(GameRes.com) All Rights reserved.<BR>This site is
optimized for at least 1024x768 resolution (hi-color) viewing with a
browser that supports style sheets.<BR>
<SCRIPT language=JavaScript><!--function SymError(){ return true;}window.onerror = SymError;var SymRealWinOpen = window.open;function SymWinOpen(url, name, attributes){ return (new Object());}window.open = SymWinOpen;//--></SCRIPT>
<SCRIPT src="游戲程式設(shè)計指南(HoHo篇) Lesson2.files/mystat.htm"></SCRIPT>
<BR> </FONT></P></TD></TR></TBODY></TABLE></FONT>
<SCRIPT
language=JavaScript><!--window.open = SymRealWinOpen;//--></SCRIPT>
</BODY></HTML>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -