📄 游戏程式设计指南(hoho篇) lesson2.htm
字号:
size=1> <BR><IMG border=0 height=224
src="游戏程式设计指南(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来作为标记,如果这个变量值是真,那么当前窗口处于激活状态,否则就是没有激活,消息代码片断如下:<BR><BR></FONT></FONT><FONT
color=#99ccff face=宋体 size=2> case WM_ACTIVATE: //
窗口的活動狀態<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="游戏程式设计指南(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>通过消息响应来为g_bActive进行状态的变化,同时会帮你进行DDraw设备的重建,当然,这部分HoHo已经为你做好了,你可以不用考虑这些。现在让我们回头来看看我们的游戏循环,我们需要做一些处理,让我们的程序在最小化(非激活状态)的时候节省点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>游戏循环</FONT></TD></TR>
<TR>
<TD align=middle width="100%"><FONT size=2> <BR><IMG
border=0 height=310
src="游戏程式设计指南(HoHo篇) Lesson2.files/CreateAPP_11.gif"
width=451><BR> </FONT></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT face=Arial
size=2>好了,经过这样的处理,已经可以达到我们的要求,可能有些朋友要问,为什么要加一个Sleep(1)的操作?这里是利用Sleep(1)来将应用程序的进程系统资源占用率返回给系统,你只要打开Windows自带的任务管理器就可以看出两者的差别。<BR><BR><BR><BR></FONT><B><A
name=让游戏程序进入全屏方式>让游戏程序进入全屏方式</A></B><FONT face=Arial
size=2><BR><BR> 说了半天都是围绕着游戏程序窗口模式的操作,现在我们来考虑一下如何让我们的游戏程序进入全屏状态,真正的游戏状态。使用HoHo要进入全屏模式是相当容易的,还记得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>是很容易吧!我想应该不需要图例了。 :-)<BR><BR><BR><BR></FONT><B><A
name=善尾工作,释放数据>善尾工作,释放数据</A></B><FONT face=Arial
size=2><BR><BR> 让机器工作了那么久,应该让它休息一下了,我们程序的退出一定要记得把我们用到的东西还给系统,虽然现在的操作系统会帮你收回,但是保持一个良好的习惯还是非常重要的,现在看看如何把HoHo释放掉。<BR> 找到_tWinMain()函数,或者说是主函数吧,只要在函数的结尾部分加入:<BR><BR></FONT></FONT><FONT
color=#99ccff face=宋体 size=2> SAFE_DELETE( g_pDisplay
);</FONT><FONT face=Arial
size=2><BR><BR>这样就行了,是不是很简单?执行了这部操作,HoHo会帮助你将所使用的DirectX设备,包括图像的数据资源都会自动释放。<BR><BR><BR> 今天就写到这里,一个初具形态的游戏窗口已经基本上完成了,下一回我们要去了解如何载入并且绘制图像,让我们来美化游戏的面容。<BR><BR> 本教程到目前为止的<A
href="http://www.gameres.com/HoHo/Guide/Lesson2.zip">工程文件下载</A>。<BR> (此档案不包含HoHo游戏引擎库,如若程式无法执行,请根据所使用的HoHo版本附带的DLL库文件替换程式所执行目录中的同名文件。)<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>
未经许可请勿转载此系列教程,编写:林德辉(Sea_Bug)<BR> Copyright ©
中国游戏开发资源网(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="关 闭 窗 口"></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>本站中所有文章以及图形均为作者本人、公司所有,本站所有资讯仅供参考,若有任何损失本站概不负责,请自行斟酌。<BR>Copyright
© 2001-200? 中国游戏开发资源网(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="游戏程式设计指南(HoHo篇) Lesson2.files/mystat.htm"></SCRIPT>
<BR> </FONT></P></TD></TR></TBODY></TABLE></FONT>
<SCRIPT
language=JavaScript><!--window.open = SymRealWinOpen;//--></SCRIPT>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -