DirectX教程

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DirectX 8 教程

著 Andy Pike

译 Aman JIANG

第一章: 准备就绪

What you will need(你需要什么)

•DirectX 8.0 SDK (可以从/directx下载)

•VC6(SP5)/

•Windows 程序设计经验

•通晓 C++ 和OOP

Introduction(序)

(原著的话)

欢迎阅读本DX教程。本教程至少能帮你入门、使你了解怎样用DX8 来开发Windows游戏。我写这个教程的原由有二:首先,当出现DX时,我还是一个初学者。所以,我想边学习边写一个教程来锻炼自己。其次,对初学者来说,DX SDK 并不是很有帮助。而且,网上也没有什么像样的Dx8教程。另外,就像上面我提到的,我也是个初学者,所以,如果你发现教程中有什么地方不对,请给我写信:**********************。

译者言

我也是一名初学者,所以,有言在先:如果你读英文能如履平地,建议你还是去读原著。此教程很适合入门,等你入门以后,你会发现,其实一切并没有想象的那样复杂。这是个不错的Dx8教程,我会尽最大努力把它翻译好。注:我并没有完全按照原著来译,不适之处,请多包涵。嗯,你应该弄到教程附带的源代码,没有那个可不行!可以到去下载。欢迎指出我的错误,或与我联系,我的Email:************************ or ****************** , 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.

1.In Visual C++ create a new Win32 Application.

a.File > New

b.From the Projects tab select Win32 Application

c.Enter a name for your project such as “DX Project 1”

d.Select a folder for the location of your source code files

e.Click Next

f.Select the empty project option.

g.Click Finish

2.Make sure that your project settings are correct.

a.Project > Settings...

b.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.

3.Make sure that your search paths are correct.

a.Tools > Options > Directories Tab

b.In the "Show directories for" drop-down, select "include files".

c.If it does not exist already, add the following path: \include.

d.Make sure that this path is at the top of the list by clicking on the up arrow button (if

needed).

e.In the "Show directories for" drop-down, select "library files".

f.If it does not exist already, add the following path: \lib.

g.Make sure that this path is at the top of the list by clicking on the up arrow button (if

needed).

4.Add the source code.

a.File > New

b.From the Files tab, select C++ Source File

c.Enter a filename such as “Main.cpp”

d.Copy the code segment below, and then paste it into your new fil

e.

5.Build and Run the program.

a.Press F7 to build your project

b.Press F5 to run

相关文档
最新文档