﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-心系RPG-文章分类-游戏程序结构</title><link>http://www.cppblog.com/Appllo/category/12997.html</link><description>思想</description><language>zh-cn</language><lastBuildDate>Thu, 04 Feb 2010 15:16:11 GMT</lastBuildDate><pubDate>Thu, 04 Feb 2010 15:16:11 GMT</pubDate><ttl>60</ttl><item><title>游戏的简单结构</title><link>http://www.cppblog.com/Appllo/articles/107049.html</link><dc:creator>黄浩</dc:creator><author>黄浩</author><pubDate>Tue, 02 Feb 2010 13:56:00 GMT</pubDate><guid>http://www.cppblog.com/Appllo/articles/107049.html</guid><wfw:comment>http://www.cppblog.com/Appllo/comments/107049.html</wfw:comment><comments>http://www.cppblog.com/Appllo/articles/107049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Appllo/comments/commentRss/107049.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Appllo/services/trackbacks/107049.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>　　科学往往是严谨的，而艺术是抽象的，往往这两种截然不同风格的总是显得格格不入，然而游戏却把它们完美的结合在了一起，游戏的伟大之处在于，在高端的</span><span>IT</span><span>技术的支持下，它直观的就给大众带来的无穷的乐趣。</span></p>
<p><span>　　但是游戏的核心终究还是基于</span><span>IT</span><span>软件技术，所以我认为任何一个希望成为游戏开发者的朋友，都应该具备优秀的软件开发能力，无论你的职位是一个程序，还是一个策划，又甚至是一个美术。</span></p>
<p>&nbsp;　　<span>闲话就到这里，这里不谈论</span><span>web game</span><span>，游戏的主流程序语言还是</span><span>C++</span><span>。</span></p>
<p>&nbsp;　　<span>那么从</span><span>0</span><span>开始，关于</span><span>C++</span><span>程序，最著名的入门程序就是</span><span>hello world</span><span>：&nbsp; </span><span></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img id=Codehighlighter1_31_77_Open_Image style="DISPLAY: inline" onclick="this.style.display='none'; Codehighlighter1_31_77_Open_Text.style.display='none'; Codehighlighter1_31_77_Closed_Image.style.display='inline'; Codehighlighter1_31_77_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_31_77_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_31_77_Closed_Text.style.display='none'; Codehighlighter1_31_77_Open_Image.style.display='inline'; Codehighlighter1_31_77_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_31_77_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_31_77_Open_Text style="DISPLAY: inline"><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello&nbsp;World</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">7</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
</span>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">　　</span></p>
<p>　　<span>或者是<span>windows</span>版本的<span>Hello World:</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">windows.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;_stdcall&nbsp;WinMain(&nbsp;IN&nbsp;HINSTANCE&nbsp;hInstance,&nbsp;IN&nbsp;HINSTANCE&nbsp;hPrevInstance,&nbsp;IN&nbsp;LPSTR&nbsp;lpCmdLine,&nbsp;IN&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;nShowCmd&nbsp;)<br><img id=Codehighlighter1_133_191_Open_Image onclick="this.style.display='none'; Codehighlighter1_133_191_Open_Text.style.display='none'; Codehighlighter1_133_191_Closed_Image.style.display='inline'; Codehighlighter1_133_191_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_133_191_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_133_191_Closed_Text.style.display='none'; Codehighlighter1_133_191_Open_Image.style.display='inline'; Codehighlighter1_133_191_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_133_191_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_133_191_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;MessageBox(NULL,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello&nbsp;World</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Dlg</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,MB_OK);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<p>&nbsp;</p>
<p><span>　　上面绝对是一个完整的而且完美的程序，它拥有程序入口点，完整的程序结构，完整的逻辑（哪怕它的逻辑仅仅是打印出一个<span>Hello World</span>）<span>,</span>而且姑且认为是没有<span>bug</span>的程序。</span></p>
<p><span>　　游戏软件和上面的<span>hello world</span>或者其他的软件的差异仅仅在于逻辑不一样而已，如果用游戏的逻辑去替换上面的<span>MessageBox(NULL,"Hello World","Dlg",MB_OK);</span>这个逻辑，那么它就是一个游戏程序了，即使这个游戏逻辑是空的，它在我们心中已经成为了一个游戏框架的最大的范围。一切的复杂的具体细节也仅仅是在这个最大的框架里面进行的．</span></p>
<p></span></span><span><span>&nbsp;</p>
</span></span>
<img src ="http://www.cppblog.com/Appllo/aggbug/107049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Appllo/" target="_blank">黄浩</a> 2010-02-02 21:56 <a href="http://www.cppblog.com/Appllo/articles/107049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>