欢迎来到天天文库
浏览记录
ID:22959103
大小:205.51 KB
页数:13页
时间:2018-11-02
《c编写3d游戏框架示例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、VisualC#编写3D游戏框架示例在本文中,我假定你的所有开发工作都将使用VisualStudio.NET2003来完成12 下一页 你可能对实际地编写游戏代码期待已久了。由于DirectXSDK2004年夏季更新包含了一个牢固的示例框架组件,并且它被设计成能在你自己的代码中直接使用,同时还为你处理了很多事务,所以你只要简单的使用它,就可以节省大量的时间和精力。 本文中的例子使用的就是这个示例框架组件,在本文中,你将学习到的内容有: ·如何建立自己的项目 ·如何使用示例框架组件来列举设备 建立项目 在本文中,我假定你的所有开发工作都将使用Visu
2、alStudio.NET2003来完成。如果你不希望使用这个环境,可以使用命令行编译代码,它允许你使用任意的文本编辑器或集成开发环境(IDE)。 启动VisualStudio.NET2003并点击起始页面中的"新建项目"按钮。如果你没有使用起始页面,可以点击"文件"菜单下的"新建"子菜单中的"项目"菜单项,或者使用Ctrl+Shift+N。选择"VisualC#项目"区域中的"Windows项目"数据项。把这个项目命名为Blockers,这是游戏的名称。 在你查看自动生成的代码之前,首先把示例框架组件添加到你的项目中。一般情况下,我会在"解决方案浏览器"中
3、建立一个新文件夹,并把这些文件放入一个这个独立的文件夹中(把这个文件夹的名字取为Framework)。右键点击这个新建的文件夹,从"添加"菜单中选择"添加已有的项"。导航到DirectXSDK文件夹,你会发现该示例框架文件位于SamplesManagedCommon文件夹中,选择每个文件并添加到你的项目中。 在示例框架组件被添加到项目中以后,你就可以去掉自动生成的代码了。这些代码中的大部分都是用于建立别致的Windows窗体应用程序的,因此,它与我们编写游戏的代码是无关的。用列表1中的代码替换已有的代码和类(Form1)。 列表1:空的框架组件usin
4、gSystem;usingSystem.Configuration;usingMicrosoft.DirectX;usingMicrosoft.DirectX.Direct3D;usingMicrosoft.Samples.DirectX.UtilityToolkit;publicclassGameEngine:IDeviceCreation{ ///程序入口。初始化所有部分并进入一个消息处理循环。用空闲时间显示场景 staticintMain() { using(FrameworksampleFramework=newFramework()) { r
5、eturnsampleFramework.ExitCode; } }} 这段新代码中有三个地方比较突出。首先,你可能注意到了除了静态的main方法之外,删除了所有东西,而且main方法也被修改过。剩余的代码是Windows窗体设计器的支撑代码。由于这个应用程序不需要使用该设计器,因此这些代码就没有用了,可以被删除。其次,这段代码不能编译,因为游戏引擎希望实现的两个接口还未实现。再次,这段代码实际上没有做任何事务。 在你开始解决后面两个问题之前,你必须添加一些引用。由于你准备在这个项目中显示奇特的3D图像,你就必须给项目添加能执行这样的显示操作的组件的引用
6、。本文采用受控DirectX来执行这种操作,因此你需要在"项目"菜单中选择"添加引用"。图1显示了弹出的对话框。图1:添加引用对话框 如果你安装了DirectX9SDK2004年夏季更新,你会发现有多个版本的受控DirectX组件可供使用。请选择最新的版本(1.0.2902.0版本)。对于这个项目来说,你需要添加三个不同的组件引用: ·Microsoft.DirectX ·Microsoft.DirectX.Direct3D ·Microsoft.DirectX.Direct3DX DirectX根(root)组件包含了辅助显示计算的数学结构。其它两
7、个组件相应地包含了Direct3D和D3DX的功能。添加这些引用之后,你可以简单地查看一下列表1中添加的using语句,以确保名字空间被正确地引用了。这个步骤可以确保你不需要完整地限定类型。例如,如果不添加using语句,那么声明一个Direct3D设备变量,就必须使用下面的语句:Microsoft.DirectX.Direct3D.Devicedevice=null; Using语句可以减少很多输入内容(没有人希望在声明一个变量时输入全部的内容)。由于你已经增加了using语句,就可以使用如下所示的声明语句了:privateDevicedevice=nul
8、l; 你可以看到,用这种方式声明变量
此文档下载收益归作者所有