当前位置: 首页 > 编程语言 > .NET综合 > 正文

XNA入门教程(一)

时间:2010-12-02 博客园 Edwin Tai

写在前面:

前阵子看到cnblogs上的牛人用silverlight/WPF写游戏,不由心血来潮也尝 试写个。

众所周知,虽说从silverlight2开始ms就提供了Isolated Storage的支持, 但是,对于游戏这种大玩意儿,1M空间明显是不够的。于是乎,在silverlight 中做游戏,别的不说,其资源的调度就严重依赖于服务器及网络了。

其次,WPF,由于其渲染本身基于directX,比起win32年代的winform更适合 做form内的变换和刷新,但终究不非游戏框架,其本质是缺乏对界面消息循环的 源生支持。虽说这对于windows app是简化了不少,但对游戏恐怕还不行。

偶然之间,发现ms的XNA,一款为dotnet爱好者准备的游戏开发框架。

何谓XNA:

XNA Framework 是建置于 .NET Framework 2.0上,另外还加入了一些专注于 游戏开发上类别库,在指定的平台上使程式码重用达之最大效果。XNA Framework 在一个特别为有管理式游戏运行的通用语言执行层(Common Language Runtime)版本上运行。这个执行层支援Windows XP、Windows Vista 和XBox 360。由于游戏是开发在执行层上,使得游戏能在所有支持XNA Framework 的平台上只要很少甚至不需要任何更改便能运行。现时所有在XNA Framework 上的游戏必需使用C #和XNA Game Studio Express IDE开发。

XNA Framework 把所有用作游戏编程的低阶技术包起来,由此,游戏开发员 就可以专注于游戏内容开发而不用关心游戏移植至不同平台上的问题,游戏只要 开发于XNA 的平台上,所有硬件只要支援XNA都能运行。XNA Framework 还内置 一些工具,例如XACT以帮助游戏内容开发。这些工具还能帮助开发视觉和听觉效 果和和像真度很高的模型制作。

XNA Framework 同时支持2D 和3D 的游戏开发也支援XBox 360 的控制器和震 动效果。Xbox Live卖场可以升级开发者的XNA Game Studio Express 以使能把 他们开发的游戏用于Xbox 360上。

由于XNA基于.NET 2.0,其开发效率比C++直接调用DirectX API 快了不少,对 于我等业余的游戏开发者,是件好事。

XNA相关:

现在XNA最高版本已升级至 3.1,并且加入了对Video的支持,并且需要在 VS2008或其Express版本中安装。(至少理论上是,本人本地 VS2008+2010+Win7 屡次安装遭自动回滚,请教老外结果仍不理想,最终只能硬着头皮再安装个 Express用于XNA)

其次,国内现在XNA的相关资源非常之少,严重依赖于相关英文参考。建议大 家去看 Learning XNA 3.0-XNA 3.0 Game Development for the PC, Xbox 360, and Zune;XNA 3.0 Game Programming Recipes-A Problem-Solution Approach 和 Beginning XNA 3.0 Game Programming-From Novice to Professional相关 的书,我看下来还是非常不错的。

貌似国内不少人正翻译或已经部分翻译此类文。

第一个XNA程序

安装完XNA Framework后,在VS中即出现XNA的相关项目Template. 我们随便创 建一个名曰 WindowsGame1的XNA项目。

编译后,出现蓝天白云一片