DirectX 8 教程 著 Andy Pike www.andypike.com 译 Aman JIANG www.AmanPage.com 第一章: 准备就绪
What you will need (你需要什么)
Introduction (序) (原著的话) 欢迎阅读本DX教程。本教程至少能帮你入门、使你了解怎样用DX8 来开发Windows游戏。我写这个教程的原由有二:首先,当出现DX时,我还是一个初学者。所以,我想边学习边写一个教程来锻炼自己。其次,对初学者来说,DX SDK 并不是很有帮助。而且,网上也没有什么像样的Dx8教程。另外,就像上面我提到的,我也是个初学者,所以,如果你发现教程中有什么地方不对,请给我写信:webmaster@andypike.com。 译者言 我也是一名初学者,所以,有言在先:如果你读英文能如履平地,建议你还是去读原著。此教程很适合入门,等你入门以后,你会发现,其实一切并没有想象的那样复杂。这是个不错的Dx8教程,我会尽最大努力把它翻译好。注:我并没有完全按照原著来译,不适之处,请多包涵。嗯,你应该弄到教程附带的源代码,没有那个可不行!可以到www.andypike.com去下载。欢迎指出我的错误,或与我联系,我的Email:Chaoyu_JIANG@hotmail.com or Aman_JIANG@163.com , QQ:15852673。
COM What is COM? COM 是什么呢?COM 就是 Component Object Model, 组件对象模型。COM 接口和C++的抽象类相似(但不一样),就像抽象类没有与之相关的实际代码一样,COM描述了一套符号和语法而非实现过程。你也可以把 COM 对象就想象成一套为某个主题而设计的一整套库函数。DX 就提供了一套完整的设计3D游戏的库。最棒的就是,使用DX时,你不必去直接接触硬件,而由DX帮你代理了。这使得一些事情变得简单了。 使用 COM 时应该注意,必须在程序结束前释放所有的 COM 对象(或接口)。而且,释放它们的顺序应该和创建它们的顺序相反。就像这样: 1. Create interface A. 2. Create interface B. 3. Release interface B. 4. Release interface A. 调用它们的 Release 模块来释放它们。 Page Flipping (页翻动) 页翻动又是什么呢?嗯,你知道电影的原理吗?电影通过以每秒钟24幅的速度连续的闪动图像,每幅图像之间的差别又很小,由于人眼的滞留作用,我们看到的画面就是连续的了。这不难理解。其实,DirectX 也是这样工作的。我们把要显示的物体通通绘制到一个不可见的页上,我们称这个页为“后缓冲区”。绘制完后,快速的把它翻动到可见的“前缓冲区”上,并重复这个过程。当用户正在观看新绘制的可见页(前缓冲区)时,程序要降下一幅要显示的东西绘制到“后缓冲区”上。快速而连续的重复次过程,用户就会看到像电影一样连续的图像了。不过一般情况下,我们每秒钟能绘制的页数要比电影多很多。 如果我们不是用页翻动技术,那用户看到的屏幕中的物体,将会一个个的被绘制出来,虽然速度可能很快,但效果会很差,那并不是我们想要的。 所以,我们的游戏需要一个循环,称之为“Game Loop”。每次循环,我们都要清除“后缓冲区”,把该绘制的物体按照一定的逻辑都绘制到那上面,然后把它翻动到“前缓冲区”上,然后进入下一次循环。这个循环得直到游戏退出了才能结束。有时我们可能需要好几个这样的“后缓冲区”(多缓冲)来组成一个“交换链”(Swap Chain),以求更好的效果。
Devices (设备) What is a device? 设备是什么?简单的说,就是你的3D卡。 你得创建一个接口来代表设备,然后使用那个接口来绘制东西。
Game Loop (游戏循环) 什么是游戏循环呢?游戏循环是一段代码,在游戏退出之前循环执行的代码。这段代码在每次循环中都要:在屏幕上绘制物体(或场景人物随便什么)、处理游戏的逻辑过程(如:物体的移动、人工智能等等)、处理Windows的消息等等。基本上就是这样了。
Creating Your First Project (创建你的第一个项目) 译者:嗯,这部分我就不用译了吧,这可是基础的东西。不过还是说说初学者容易忽略的一点:一定要把你的DX SDK的Include目录和Lib目录的路径添加到VC的目录设置列表中去,而且不要把Include和Lib的地方放错了,而且还要放在第一位。还要把d3d8.lib添加到项目设置的Lib列表中,否则编译不了。 Okay, that’s enough theory lets get started. Follow the step-by-step guide below to create your first DirectX Graphics project. - In Visual C++ create a new Win32 Application.
- File > New
- From the Projects tab select Win32 Application
- Enter a name for your project such as “DX Project 1”
- Select a folder for the location of your source code files
- Click Next
- Select the empty project option.
- Click Finish
- Make sure that your project settings are correct.
- Project > Settings...
- On the Link tab, make sure that "d3d8.lib" is in the list of Object/Library Modules. If it isn’t simply type it in.
- Make sure that your search paths are correct.
- Tools > Options > Directories Tab
- In the "Show directories for" drop-down, select "include files".
- If it does not exist already, add the following path: <SDK INSTALL PATH>\include.
- Make sure that this path is at the top of the list by clicking on the up arrow button (if needed).
- In the "Show directories for" drop-down, select "library files".
- If it does not exist already, add the following path: <SDK INSTALL PATH>\lib.
- Make sure that this path is at the top of the list by clicking on the up arrow button (if needed).
- Add the source code.
- File > New
- From the Files tab, select C++ Source File
- Enter a filename such as “Main.cpp”
- Copy the code segment below, and then paste it into your new file.
- Build and Run the program.
- Press F7 to build your project
- Press F5 to run
|