⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g02.htm

📁 一本介绍如何开发游戏,如何进行游戏编程的非常值得一看的好书.
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                w     │UINT(无符号整数)和WORD(无符号字)<br>                l     │LONG(长整数)<br>                dw    │DWORD(无符号长整数)<br>                fn    │函数指针<br>                s     │串<br>                sz,str│以0字节终止的字符串<br>                lp    │32位的长整数指针<br>                h     │编号(常用于表示Windows对象)<br>                msg   │消息<br>                ──────┴─────────────────────── </p>            <p><b>变量的命名</b></p>            <p>  应用匈牙利符号表示法,变量可用表2.1中的前缀代码来表示。另外,当一个变量是由一个或几个子名构成时,每一个子名都要以大写字母开头。下面是几个例子:<br>                char *szFileName;//a nulla terminated string<br>                int *lpiDate;//a 32-bit pointer to an int<br>                BOOL bSemaphore;//a boolean value<br>                WORD dwMaxCount;//a 32-bit unsigned WORD<br>                尽管我了解一个函数的局部变量没有说明,但是也有个别表示全局变量:<br>                int g_iXPos;//a global x-position<br>                int g_iTimer;//a global y-position<br>                char *g_szString;//a global NULL terminated string<br>                总的来说,变量以g_开头,或者有时就只用g。</p>            <p><b>函数的命名</b></p>            <p>  函数和变量命名方式相同,但是没有前缀。换句话说,子名的第一个字母要大写。下面是几个例子:<br>                int PlotPixel(int ix,int iy,int ic);<br>                void *MemScan(char *szString);<br>                而且,下划线是非法的,例如,下面的函数名表示是无效的匈牙利符号表示法:<br>                int Get_Pixel(int ix,int iy);</p>            <p><b>类型和常量的命名</b></p>            <p>  所有的类型和常量都是大写字母,但名字中可以允许使用下划线。例如:<br>                const LONG NUM_SECTORS = 100;//a C++ style constant<br>                #define MAX_CELLS 64;//a C style constant<br>                #define POWERUNIT 100;//a C style constant<br>                typedef unsigned char UCHAR;//a user defined type<br>                这儿并没有什么不同的地方——非常标准的定义。尽管大多数Microsoft程序员不使用下划线,但我还是喜欢用,因为这样能使名字更具有可读性。</p>            <p><font color="#FF0000">  </font><b>C++</b> 在C++中,关键字const不止一个意思。在前面的代码行中,它用来创建一个常数变量。这和#define相似,但是它增加了类型信息这个特性,const不仅仅像#define一样是一个简单的预处理文本替换,而且更像是一个变量,它允许编译器进行类型检查和替换。</p>            <p><b>类的命名</b></p>            <p>  类命名的约定可能要麻烦一点。但我也看到有很多人在使用这个约定,并独立地进行补充。不管怎样说,所有C++的类必须以大写C为前缀,类名字的每一个子名的第一个字母都必须大写。下面是几个例子:<br>                class CVector<br>                {<br>                 public<br>                 CVector();{ix=iy=yz=imagnitude = 0;}<br>                 CVector(int x,int y,int z){ix=x;iy=y;iz=z;}<br>                 .<br>                 .<br>                 private:<br>                 int ix,iy,iz;//the position of the vector<br>                 int imagnitude;//the magnitude of the vector<br>                }; </p>            <p><b>参数的命名</b></p>            <p>  函数的参数命名和标准变量命名的约定相同,但也不总是如此。例如下面例子给出了一个函数定义:<br>                UCHAR GetPixel(int x,int y);<br>                这种情况下,更准确的匈牙利函数原型是:<br>                UCHAR GetPixel(int ix,int iy);<br>                但我认为这并没有什么两样。<br>                最后,你甚至可能都看不到这些变量名,而仅仅看到类型,如下所示:<br>                UCHAR GetPixel(int, int);<br>                当然,这仅仅是原型使用的,真正的函数声明必须带有可赋值的变量名,这一点你已经掌握了。<br>                注意:仅仅会读匈牙利符号表示并不代表你能使用它。实际上,我进行编程工作已经有20多年了,我也不准备为谁改变我的编程风格。因此,本书中的代码使用类匈牙利符号表示法的编码风格,这是Win32               API造成的,在其他位置将使用我自己的风格,必须注意的是,我使用的变量名的第一个字母没有大写,并且我还使用下划线。</p>            <p><b>世界上最简单的Windows程序</b></p>            <p>  现在读者已经对Windows操作系统及其性能和基本设计问题有了一般了解,那就让我们第一个Windows程序开始真正的Windows编程吧。<br>                以每一种新语言或所学的操作系统来编写一个“世界你好”的程序是一个惯例,让我们来试试,清单2.1是标准的基于DOS的“世界你好”程序。</p>            <p><b>   程序清单2.1 基于DOS的“世界你好”程序</b><br>                //DEMO2_1.cpp - standard version<br>                #include &lt;stdio.h&gt;<br>                //main entry point for all standard DOS/console programs<br>                void main(void)<br>                {<br>                 printf(&quot;\nTHERE CAN RE ONLY ONE!!!\n&quot;);<br>                }//end main</p>            <p>  现在让我们看一看用Windows如何编写它。<br>                <b>技巧</b> 顺便说一句,如果读者想编译DEMO2_1.CPP的话,就应当用VC++或Borland编译器实际创建一个调用内容的控制应用程序,这是一个类DOS的应用程序,只是它是32位的,它仅以文本模式运行,但对于检验一个想法和算法是很有用的。</p>            <p><b>总是从WinMain()开始</b></p>            <p>  如前面所述,所有的Windows程序都以WinMain()开始,这和简单直观的DOS程序都以Main()开始一样。WinMain()中的内容取决于你。如果你愿意的话,可以创建一个窗口、开始处理事件并在屏幕上画一些东西。另一方面,你可以调用几百个(或者是几千个)Win32               API函数中的一个。这正是我们将要做的。<br>                我只想在屏幕上的一个信息框中打印一点东西。这正是一个Win32 API函数 MessageBox()的功能。清单2.2是一个完整的、可编译的Windows程序,该程序创建和显示了一个能够到处移动和关闭的信息框。</p>            <p><b>程序清单2.2 第一个Windows程序</b><br>              //DEMO2_2.CPP - a simple message box<br>              #define WIN32_LEAN_AND_MEAN<br>              #include &lt;windows.h&gt;//the main windows headers<br>              #include &lt;windowsx.h&gt;//a lot of cool macros<br>              //main entry point for all windows programs<br>              int WINAPI WinMain(HINSTANCE hinstance,<br>              HINSTANCE hprevinstance,<br>              LPSTRlpcmdline,<br>              int ncmdshow)<br>              {<br>              //call message box api with NULL for parent window handle<br>              MessageBox(NULL,&quot;THERE CAN BE ONLY ONE!!!&quot;,<br>              &quot;MY FIRST WINDOWS PROGRAM&quot;,<br>              MB_OK|MB_ICONEXCLAMATION);<br>              //exit program<br>              return(0);<br>              }//end WinMain</p>            <p>  要编译该程序,按照下面步骤:<br>                1.创建新的Win32.EXE项目并包含CD-ROM上T3DCHAP02\下的DEMO02_2.CPP。<br>                2.编译和联接程序。 <br>                3.运行!<br>                你可能会以为一个基本的Windows程序有几百行代码。当你编译和运行程序时,可能会看到如图2.5所示的内容。</p>            <p><b>程序剖析</b></p>            <p>  现在已经有了下完整的Windows程序,让我们一行一行地分析程序的内容。首先第一行程序是<br>              #define Win32_LEAN_AND_MEAN<br>                这个应稍微解释一下。创建Windows程序有两种方式——使用Microsoft基础类(Microsoft Foundation               Classes,MFC),或者使用软件开发工具包(Software Development Kit,SDK)。MFC完全基于C++类,要比以前的游戏编程所需的工具复杂得多,功能和难度也要强大和复杂10倍。而SDK是一个可管理程序包,可以在一到两周内学会(至少初步学会),并且使用了简单明了的C语言。因此,我在本书所使用的工具是SDK。<br>                Win32_LEAN_AND_MEAN指示编译器(实际上是逻辑头文件)不包含无关的MFC操作,现在我们又离题了,回来继续看程序。<br>                之后,下面的头文件是:<br>                #include &quot;windows.h&quot;<br>                #include &quot;windowsx.h&quot;<br>                第一个引用“windows.h”实际上包括所有的Windows头文件。Windows有许多这样的头文件,这就有点像包含宏,可以节省许多手工包含显式头文件的时间。<br>                第二个引用“windowsx.h”是一个含有许多重要的宏和常量的头文件,该文件可以简化Windows编程。<br>                下面就到最重要的部分——所有Windows应用程序的主要入口位置WinMain():<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -