【IT168技术】本章介绍Windows Phone 7平台下的XNA开发技术,包括XNA的概述、类库等理论知识,最后通过一个例子介绍XNA的游戏架构以及生命周期。游戏开发是智能手机的一个重要领域,XNA是Windows Phone 7平台上游戏开发的主要工具,限于篇幅,本章只是对XNA做一个大致介绍。通过阅读本章,读者可以对XNA的框架有初步的理解,也为以后深入学习XNA做准备。
▲
学习重点:
了解Windows Phone 7下XNA的概念。
了解Windows Phone 7下XNA的类库功能。
了解Windows Phone 7下XNA开发的游戏程序结构。
一、 XNA简介
XNA作为Windows Phone 7全新的开发平台提供了优异的图形及游戏性能,也为Windows Phone 7手机增添了强劲的活力。
1、XNA概述
XNA是微软公司推出的所谓“通用软件开发平台”,是基于DirectX的游戏开发平台,是微软公司对于Managed DirectX的修正及扩充版本。它的目标是帮助开发者更加方便快捷地创建优秀、快速和跨平台的游戏。XNA中,X代表能够在DirectX和Xbox之间达到跨平台的强大的软件工具;N代表下一代(Next Generation);A代表架构(Architecture)。以DirectX为原型,微软公司希望把XNA发展为所有游戏开发平台的通用标准。如此一来将实现游戏开发工具的无缝嵌入和平滑过渡。
2、XNA发展过程
XNA的发展过程如下:
1)2004年5月12日,微软公司在第十届全球电子企业展销会上提出了XNA技术。
2)2005年3月17日,微软公司在GDC(游戏开发者讨论会)上,正式发布针对新一代游戏开发的跨平台整合型游戏开发套件“XNA Studio”。
3)2006年3月20日,微软公司在GDC上发布了XNA Framework游戏开发技术。XNA Framework构建于.NET Framework上,添加了主要用于游戏应用开发所需的类别库,在指定的平台上使游戏代码的重复利用率达到最大,降低跨平台游戏开发的难度,让游戏开发者可轻松地以C# 语言进行跨PC和Xbox 360平台的游戏开发。该技术整合在跨平台开发套件“XNA Studio”中。
4)2006年8月30日,微软公司发布为业余游戏制作者所设计的游戏开发套件XNA Game Studio Express Beta1,同年11月1日,又发布了XNA Game Studio Express Beta2。
5)2007年4月24日,微软公司发布XNA Game Studio Pro版本。
6)2007年12月13日,微软公司发布XNA Game Studio 2.0版本,该版本的特点是可以在Visual Studio 2005的各个版本中使用XNA开发项目。
7)2008年10月30日,XNA Game Studio 3.0正式版发布,支持C# 3.0、LINQ和各个版本的Visual Studio 2008。
8)2009年6月11日,微软公司发布XNA Game Studio 3.1版本,新版本提供Video Playback、Revised Audio API。
9)2010年3月9日,微软公司在GDC上发布了XNA Game Sudio 4.0版本,该版本支持在Windows Phone 7平台上开发XNA游戏。
3、XNA特点
相对于微软公司以前的手机操作系统来说,在游戏开发技术上,Windows Phone 7采用XNA技术是一个很大的突破点。归纳起来XNA游戏开发有以下特点:
① 加快游戏开发的速度。以前使用DirectX来开发Windows平台游戏,游戏开发公司大概花费80%的时间在程序开发上,而在游戏的创意上仅占20%。而使用XNA.NET Framework进行游戏开发,大大减少了开发者的工作量,不仅降低了开发的成本,而且在游戏开发上可以更加关注游戏的创意。
② 开发的游戏可以在Windows与Xbox 360之间跨平台运行,同时它更加易用,有更高的扩展性。XNA Framework把所有用作游戏编程的底层技术封装起来,由此,游戏开发员就可以把精力大部分专注于游戏内容和构思开发,而不用关心游戏移植至不同平台上的问题,只要游戏开发于XNA的平台上,支持XNA的所有硬件都能运行。
③ 支持2D与3D游戏开发。XNA Framework同时支持2D和3D的游戏开发,也支持XBox 360的控制器和震动效果。
4、XNA游戏模型
XNA Framework包括以下3个核心部分(如图4-1所示)。
▲图4-1 XNA架构组成
在Microsoft.XNA.Framework Pipelinet.dll中的XNA Graphic Engine(图形引擎)。
在the Microsoft.XNA.Framework Pipelinet.dll中的XNA Game Application Model(应用程序模型)。
在Microsoft.XNA.Framework Pipelinet.dll中的XNA Content Pipeline(内容管道)。