没有合适的资源?快使用搜索试试~ 我知道了~
3D游戏编程入门经典.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 171 浏览量
2021-12-16
17:27:58
上传
评论
收藏 373KB DOCX 举报
温馨提示
试读
39页
3D游戏编程入门经典.docx
资源推荐
资源详情
资源评论
注:表达了3D玩耍编程所需要的根本学问。利用.net 和 c#编写
成为玩耍开发人员的条件
我所遇到的每一个开发人员都至少在某一段时间想成为一个玩耍开发人员。对于很多人来说,视频玩
耍不只是空闲时的一种爱好,他们完全被玩耍所吸引。人们沉醉在这些虚拟世界中,经常梦想由自己创立
如此奇特的天地。
不要被秀丽的图形、奇异的故事情节和感人动听的音乐所愚弄,编写玩耍是格外困难的工作,只有某
些特定的开发人员才能够获得成功。除了所需要的技术天赋之外,一个优秀的玩耍开发人员应当拥有其他
一些技能,例如,您首先是一个玩耍爱好者。假设不是玩耍爱好者,那么不行能编写出宏大的玩耍,这一
条件使得玩耍开发工作更具有挑战性。
成为玩耍开发人员确实不是一件简洁的事情。假设没有阅历,那么不会被玩耍开发公司聘用,并且当
没有公司聘用时,将更难以获得阅历。当前只有少量的课程以及某些学校专注于讲授玩耍的开发。但是,
入门的最好方式是制作一个样片(demo reel)。它能向您将来的老板呈现您的力量和处理事情的方式。
通过本书,您将制作出一个引人注目的样片。
读者对象
我经常被问到: 为什么每个人都想使用.NET Framework 编写玩耍程序? 。其他的问题包括: .NET
Framework 不是只用于 Web 效劳器应用程序的吗? , 它不是很慢吗? ,等等。对于玩耍开发人员(或者
将来的玩耍开发人员)来说,这些都是很重要的问题,但他们误会了.NET Framework。
.NET Framework 不是最新的 Web 效劳器版本,也不是任何效劳器组件的扩展。固然能够使用 .NET
Framework 创立强大的 Web效劳器应用程序,但是,这并不是它们的全部功能。.NET Framework 包括一种
功能强大的客户端应用程序编程接口 (API)以及 Managed DirectX,实际上.NET 开发人员需要把握整个
DirectX API。利用它能够编写很多新的应用程序,包括玩耍。假设认为.NET Framework 只能够编写效劳器
应用程序,那么显得有一点单纯。您也可以利用它创立简单的客户端应用程序。
关于.NET 的性能问题仍旧存在,这些问题也很难简洁描述。当引入一门
新的
语言或者运行库时,开
发人员在承受之前,通常比较迟疑。不久以前,很多玩耍仍旧是承受汇编语言编写的,由于玩耍开发人员
不信任 C 或者 C++语言足够快。.NET Framework 也遵循这个规章。在证明.NET Framework 的性能之前,
玩耍开发人员都会以一种疑心的眼光对待它。在本书中,大量的玩耍是使用.NET 运行库开发的。事实胜于
雄辩,与其喋喋不休地争辩.NET 运行库的性能有多好,还不如让本书中一些真实的玩耍来证明这一点。
为什么使用.NET Framework
任何曾经编写过 Windows 程序的人都(无论是否使用.NET Framework)能够生疏到,即使使用 Win32 API 编
写 简洁 的 Windows 应用程序都比较困难。设计.NET Framework 的目的是供给一种较简洁的方式来执行在
Windows 程序中一些常见的事情,并且为一般的开发人员自动处理很多问题,例如内存的治理。
利用.NET Framework,开发人员可以省去很多麻烦的任务,例如花费三天的时间查找一个内存泄漏
bug,他们可以将一些功能直接添加到正在编写的玩耍里面。很多状况下,从玩耍中删除某些好的特性是由
于需要花费大量的时间解决问题,而这些问题.NET Framework 已经为您解决。
.NET Framework 的另外一个令人感爱好的特性是语言的中立性。只要所使用的功能兼容公共语言标准
(Common Language Specification,CLS),那么可以承受任何能够使用 CLS 兼容功能的语言。过去,Visual
Basic 开发人员转向使用严格的 C++进展编码时,可能比较困难。现在,Visual Basic .NET 开发人员能够较
简洁
的转向 C#,由于这两种语言之间仅存在较小的语法差异。本书中的代码是使用 C#编写的。
本书的目的
编写本书的目的是为了满足玩耍开发群体的需求,他们缺少关于本书主题方面的信息。由于不能找到所需
要的信息,太多可能成为优秀玩耍开发人员的程序员选择了退出。目前市场上的多数玩耍开发书籍是关于
2D 图形的,它们是比较好的起点,但现在编写的多数玩耍几乎全是 3D 图形的,并且现在的玩耍爱好者也
期望如此。并不是不需要连续编写 2D 玩耍,但是假设那是玩耍开发人员所能够做的全部,那么他所做的
可能毫无用处。
本书并不训练您如何去编写一个价值数百万美元的玩耍。而是给出全部的工具和信息,让读者自己学会如
何开发 3D
玩耍。在阅读本书的过程中,将实现两个完整的3D
玩耍,阅读完本书后,读者将能够设计并实
现
自己的 3D 玩耍,以使自己成为一名优秀的玩耍开发人员。本书中最终的玩耍将留给读者作为一个练习。
作者简介
Tom Miller 是 Managed DirectX API 的设计师和首席开发人员。自 1997 年开头,他工作于 Microsoft 公司。
他最初在 Visual Basic 组工作,后来他宠爱上了玩耍和玩耍编程,因此进入了 DirectX 组。自 1999 年末,
他在 DirectX 组工作,并且已经使得 DirectX API(和通常的玩耍编程)为更多人所承受。他也编写了到目前
为止最具权威的关于 Managed DirectX 库的书籍。
欢送您的贵重意见!
作为本书的读者,您同时还是本书最重要的批判家和评论员。我敬重您的意见,想知道我们在什么地方做
得不错,在哪些地方还能够做得更好,您最想看到我们供给哪些方面的内容,以及您期望传递给我们的任
何明智的言语。
我们格外欢送您的评论。您可以给我们写电子邮件或者直接给我写信,说明您宠爱或不宠爱本书的哪些方
面—— 以及我们能够在哪些方面改进本书。
请您留意的是,我们不能在与本书主题相关的技术问题方面挂念您。但是,我们拥有一个用户效劳小组,
与本书相关的特定技术问题将转寄给他们。
信中务必包含本书的书名和作者,以及您的姓名、电子邮件地址和 号码。我们将认真阅读您的评论,
并将它们与本书的作者和编辑共享。
我的电子邮件地址是:feedback@samspublishing
假设生疏了如何利用 CLR(公共语言运行库)编写代码后,在面临选择开发语言时,您可能已经知道了您的
选择。在 Visual Studio .NET 产品的最新版本中,当编写托管代码时,可以使用 4 种语言: C#、Visual
Basic .NET 、Managed C++和 J#。此外还可以使用从 VisualStudio .NET 产品之外的第三方销售商处获得的
其他语言,例如 COBOL 或者 FORTRAN。
尽管本书中将争辩的概念可以很简洁地移植到任何完全兼容 CLS(通用语言标准)的语言,但实际的代码将
仅包含所 提到 的前 两种 语言 : 即 C# 和 Visual Basic. NET 。本书中 将仅 使用 C# 代码。 您可 以从
:// tupwk .cn/downpage 中下载本书配套的安装文件,猎取相关代码。
在本章中,您将学习到:
● 定义.NET
● 托管代码
●
使用 Visual Studio .NET IDE
● 在命令行中编译托管代码
● 开发人员
● 玩耍开发过程
● 工具
1.1 什么是.NET?
自从 Microsoft
公司宣布并发行.NET
之后,人们始终在尝试指出这种新
―
事物‖到底是什么。依据 Microsoft
公司的市场活动,人们知道它将对计算产生革命性作用。这是一个很宏远的目标,现在断言它是否能够完
成目标还太早。但是,它正在一步步地向此目标努力。
当人们争辩.NET
时,无法确定他们正在争辩.NET
的哪个局部。Microsoft
公司发行的其他
―
产品‖或
―
思想‖
都不具有如此多的不同形式。紧随.NET 名字的是众多的产品、效劳,甚至是概念,因此指出.NET 实际上
是什么,是格外困难的。
当本书中争辩.NET
时,它指从.NET
FrameworkSDK
中可获得的新的开发语言和运行库。该 SDK
包含.NET
运行库。而.NET 运行库包含运行为.NET 环境编写的应用程序所需要的全部东西。可以认为.NET 运行库由
几局部组成。CLR 的部件驻留在 GAC(Global Assembly Cache)中。也包括 Microsoft .NET 语言的编译器(C#、
VB .NET、VJ#等等)。可以在图 1-1 中看到 GAC。
图 1-1 GAC
人们对运行.NET
代码的最常见误会之一是,代码是
―
解释执行的‖,像 Java
代码或者老的 Visual
Basic
运行
库一样。事实上,为.NET 编写的代码在执行前首先被编译。当编译.NET 应用程序时,它被编译为一种中
间语言(IL,intermediary language)。这种 IL 实际上存储在可执行文件中或者已经创立的库中。
IL 可能在两个位置中的某一处被编译为本机代码 (native code)。在安装代码时,可以执行一个称为
ngen(native generation,即本机生成器)的进程。它将 IL 直接编译为本机代码,并将所编译的本机代码存储
在 GAC 中的特定位置—— 本机程序集缓存(native assembly cache)中。假设在安装时没有编译代码,那么
代码在第一次执行前必需被编译。在应用程序启动期间,.NET 运行库中一种称为 JIT(Just In Time)编译器的
特别功能在后台执行编译工作。
在后一种情形中,由于发生在后台的编译工作,应用程序的启动时间将受到影响。当启动时间对应用程序
格外重要时(例如正在编写玩耍时),确保在安装阶段包含
ngen
步骤是比较明智的。但是,在这期间无法进
展
某些优化,而假设利用 JIT 编译代码,那么可以进展这些优化,因此假设启动时间不是很重要,那么可以让
.NET 运行库处理它所能够做的工作。
1.2 什么是托管代码
在本书中将经常提到托管代码。在全书中使用的API 被称为 Managed 的 DirectX,.NET 语言常被称为托管
语言。术语
―
托管
‖
来源于.NET 运行库具有一个内置的内存治理器这一事实。
在
―
过去‖(只是几年前),使用 C 和 C++编写代码的开发人员不得不自己进展内存治理。当不再需要已安排
的内存空间时,必需将其释放,除非期望该内存被
―
泄漏
‖,
内存泄漏将带来严峻的性能问题。更糟糕的是
由于直接处理指针,而它很简洁破坏工程正在使用的内存。在很多状况下,这将导致很长时间的故障调试,
由于通常实际看到出错的地方并不是内存初始被破坏的地方。
人们认为 C 和 C++语言难于把握,主要是由于具有很多这种类型的问题。很多开发人员不情愿尝试 C 和
C++,也是由于这个缘由,他们尝试使用其他没有这些令人头痛问题的高级语言,例如 Visual Basic。尽管
这些新语言具有易用易学的优点,但也具有一些缺点。它们的性能无法与 C 和 C++语言相比,在大多数状
况下显得特别慢。另外,由于底层操作系统是使用 C++开发的,所以这些语言难以实现 C++的全部功能。
尽管可以使用它们处理很多格外好的工作,但是假设想要获得操作系统的全部性能和优势,只能依靠自己。
与.NET 运行库的第一个版本相比,.NET 的大多数内容都已经转变了。Microsoft 公司几乎完全重新设计了
一种新的 API,尽力确保开发人员关心的问题都会被解决。这种新的运行库必需易学易用,快速高效,并
且不存在令人头痛的内存治理问题。在本书中,将看到.NET 在这些方面的好处
1.3 使用 Microsoft Visual Studio .NET 2003 IDE
编写代码
提示:
本书设定在 Visual Studio .NET IDE 中编写代码。这不是使用.NET 编写玩耍的需求,也不是使用.NET 本身
的需求,它是本书所选择的 IDE。图 1-2 显示了 Visual Studio .NET 2003 IDE。
该 IDE 供给了编写.NET 应用程序所需要的全部工具。它不仅包括编写代码所需要的编辑器,而且还有其他
大量功能,使得.NET 应用程序的开发变得简洁。它的设计使得您能够便利地创立丰富的内容,如Windows
应用程序。它也具有一个内置的编译器和调试器,并且无缝集成了全部功能。本书设定使用这种 IDE 进展
开发。
图 1-2 Visual Studio .NET IDE
生疏这种 IDE 的最好方式是使用它编写一个简洁应用程序。典型的计算机编程是编写一个简洁的 Hello
World应用程序,该应用程序只是在屏幕上输出 Hello Word 文本。狡猾说,这格外令人厌烦,因此您应当
尝试编写更简单的程序。但也不需要惊奇的程序,由于这只是对 IDE 的一个介绍,固然在程序中包括一些
用户特性交互将更好。在这里将编写一个应用程序,询问用户的姓名和诞生年份,然后输出用户的当前年
龄。
1.3.1 C#代码
现在启动 Visual Studio .NET 2003 IDE。首次启动时,应当看到图 1-2 所示的默认启动页面。单击该页中的
New Project 按钮,启动一个新的工程。假设没有显示这个页面,也可以单击 File | New Project 菜单项,或
者按下 Ctrl+Shift+N 快捷键。这将产生一个 New Project 对话框,如图 1-3 所示。
应当首先尝试 C#代码,因此在 New Project 对话框中,从左边的列表框中选择 Visual C# Projects 项,从右
边的列表框中选择 Console Application 项。为工程命名,然后单击 OK 按钮创立该工程。这将创立一个新的
把握台应用程序,当前它什么都不执行。使用程序清单 1.1 中的代码替换自动生成的代码。
剩余38页未读,继续阅读
资源评论
奔跑的朱亚文
- 粉丝: 0
- 资源: 4万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功