标题：Windows Phone程序设计（XNA框架）
出版信息
《Windows Phone程序设计（XNA框架）》
[美]Charles Petzold 著
杨帆 译  
ISBN 978-7-121-15767-7  
2012年3月出版
定价：69.00元
16开
476页
在Windows编程传奇人物的指导下，将你的游戏创意变成现实
内容简介
Windows Phone是微软经过数年历练，融合了几乎所有的微软产品及服务而推出的创新性智能手机平台。游戏是智能手机上必不可少的应用程序，Windows Phone上提供的游戏开发框架是XNA，这是微软的专业跨平台游戏开发框架。
本书的编写兼顾了实用性和创新性，书中的实例是读者很好的学习资源。全书共分上、下两篇，上篇对比Silverlight和XNA介绍Windows Phone平台的基本概念，具体包括控制程序朝向、触控简介、处理位图材质、传感器和服务，以及在程序内传递和保存数据遇到的问题。下篇主要介绍如何使用XNA开发高性能的二维游戏，具体包括文字和子画面（sprites）的创建，以及动画控制、处理位图（加载、从像素基本控制、使用动态的材质）、使用变换、使用触控和传感器来创建游戏。
关于作者
Charles Petzold书写基于Windows操作系统上编程的书籍已有24年了。他是微软客户端应用程序开发的MVP，Windows先驱奖的获得者。他笔耕不辍，那本经典的《Windows程序设计》现在已经是第五版，是历史上最好的编程书籍之一，另外，其著作《编码:隐匿在计算机软硬件背后的语言》也受到了广泛的赞赏。
引  言
重要提示：本书和另外一本Microsoft Silverlight Edition: Programming Windows Phone 7都有完整的索引，它们均来自一本免费的电子书，名为Programming Windows Phone 7。本书可以从微软出版社的博客上找到，这本书没有对原始的版本进行任何文字上的修改，也包括原始图片的颜色说明，只是在这本书中以黑白色来显示。下面是原书的引言，唯一的不同是，“代码示例”的部分是根据本书内容来更新的。
本书是微软的Windows Phone 7项目组给编程社区的一份礼物，笔者有幸成为其中一员。本书将向读者介绍使用C#编程语言和Silverlight、XNA 2D框架来为Windows Phone 7平台开发应用程序的基本知识。
是的，Programming Windows Phone 7这本书是可以免费下载的，对于依然喜欢纸质书的读者，这本书分成了两个完整索引的打印版本：Microsoft Silverlight Edition: Programming Windows Phone 7和Microsoft XNA Framework Edition: Programming Windows Phone 7。
因为下载了这本书而节省下的钱请您用于购买其他的书籍。尽管在网络上有大量的信息，书籍仍然是学习编程的最好的方式，因为其有条理并且有完整的辅导方式。每本书的销售都会带给作者欢乐的眼泪，所以请给予作者肯定和支持。
您可以购买其他书籍来作为本书的补充材料，比如，在本书中，笔者很少谈到Web服务，这部分内容是缺乏的，现在Web服务对于Windows Phone 7应用程序来说变得越来越重要了。本书对于XNA的内容只是局限于2D的图形编程，作者也希望给本书的下一个版本中加入一些3D的内容，现在的内容也并不完全涉及Xbox LIVE社区角度的游戏编程。本书没有讨论Visual Studio之外的编程工具，也没有讨论Expression Blend。
本书的发行商微软出版社也有关于Windows Phone 7的其他书籍即将上市：Andy Wigley和Peter Foot的Windows Phone 7 Silverlight Development Step by Step提供了更多的面向工具的方式。另外，尽管Michael Stroh的Windows Phone 7 Plain & Simple是一本手机的使用向导，而不是关于开发的，它也给程序员提供了一些洞察力和好想法。
此外，作者也听说老友Doug Boling在编写一本关于Windows Phone 7企业开发的书籍，这应该是一本大作，值得推荐。
本书组织本书分为两篇。第一篇是讨论Windows Phone 7编程的基本概念，Silverlight和XNA的实例都会使用。大多数Windows Phone 7的程序员都会选择其中一个平台，但笔者认为，程序员对于可选的方向具备必要的知识是很重要的。
本书的第二篇是关于XNA 2D的。为了方便读者阅读，本书的结构编排都是建立在前面章节知识的基础上的，所以推荐的阅读方式是按顺序来阅读。
关于读者的假设这里假设读者具备基本的.NET编程的知识，熟悉C#编程语言。对于不了解这些知识的读者，可以阅读作者免费的在线书籍.NET Book Zero: What the C or C++ Programmer Needs to Know about C# and the .NET Framework，这本书可以在作者的网站上找到。
系统需求使用本书前，读者需要先下载并安装Windows Phone开发工具，其中会包含针对Windows Phone的Visual Studio 2010 Express版本、XNA Game Studio 4.0，还有一个屏幕上的Windows Phone的模拟器用来在没有手机设备时测试程序。读者可以从中获取最新的信息并下载。
也可以将这些工具安装在Visual Studio 2010上，这样会给Visual Studio 2010增加手机开发的功能，这也是笔者在使用的配置。
尽管可以使用手机的模拟器来做很多事情，在某个时间点会需要将程序部署到真实的Windows Phone 7的设备上，读者可以在上注册一个开发者账号，然后解锁手机，这样才能通过Visual Studio将程序部署到手机上。
在2010年7月，作者得到一部LG GW910手机来测试本书中的程序，当时手机上安装的版本是7.0.7003.0。
使用手机模拟器Windows Phone 7支持多点触控，这是开发手机程序很重要的一部分。当使用Windows Phone的模拟器时，鼠标的单击和鼠标的移动可以模拟模拟器上的触控，但是只有一个手指。要想在模拟器上测试多点触控功能，就需要一个多点触控的显示屏，并且允许运行在Windows 7系统下。
如果没有多点触控的显示器，可以使用多个鼠标来模拟多点触控。在网站上可以找到相关下载，也有链接到提供教程的网页。
Windows Phone 7设备也有一个内置的加速度仪，这在模拟器 上也是很难模拟的。Blomqvist（本书的技术审阅人之一）在中发现了一个程序，该程序使用webcam和ARToolkit来模拟加速度仪传感器，并通过TCP/HTTP服务器将数据传给Windows Phone 7模拟器。尽管我们还没有尝试，但这看起来也是很有趣的。
代码示例为了介绍Silverlight和XNA的编程概念，本书描述了190个完整的程序，很多程序都是小而简单的，也有一些大的而且更加有趣的程序。
有些人喜欢通过在Visual Studio中重新创建工程并且自己输入源代码来学习新的编程环境。也有一些喜欢研究已有的代码，并且运行来看看这些代码到底是干什么的。如果是后者，可以在链接的页面中的Companion Content下载到一个ZIP文件，其中包含所有的源代码。
如果觉得那些代码里有对你的项目有用的部分，都是可以免费使用的，而且没有任何限制，你可以直接使用或者根据需要来修改。
最后时刻的内容在本书快完成的时候，第一个版本的Silverlight for Windows Phone Toolkit也已经发布，其中提供了额外的元素和控件，读者可以在中下载。在历史上，Silverlight工具包中常常有一些元素和控件的预览，它们有些会包含在下一个版本的Silverlight发布中。很遗憾，在本书中没能有一个章节来讨论这个工具包中的内容。
对于XNA的程序，Visual Studio有时候会报错说不能编译或者部署，如果遇到这类问题，可以在解决方案的平台下拉列表中选择“Windows Phone”，而不是“Any CPU”，或者在Build菜单的配置管理器中，在活动解决方案的平台下拉列表中选择“Windows Phone”，而不是“Any CPU”。
在作者的个人网站中也包含了本书的信息，或许也有未来版本的信息。此外，笔者也希望尽可能多地写一些关于Windows Phone 7编程的博客。
重要的人这本书的出版也要感谢Dave Edson——我的老朋友，我们最早认识要追溯到20世纪90年代早期，我在《微软系统杂志》（Microsoft System Journal）做特约编辑时，他力荐我是写这本Windows Phone 7教程的最佳人选。在2009年的12月，Dave就安排我参加微软内部关于手机的深入技术研究，Todd Brix对本书也很支持，Anand lyer负责和微软出版社的协调工作。
在微软出版社，Ben Ryan启动了这个项目，Devon Musgrave负责将我的代码和分散的文章组织成书（我们以前就有交情，回到1998年出版的《Windows程序设计》第五版，在版权页的底部也可以看到Ben和Devon的名字。）
我的技术审阅者是勤劳的Per Blomqvist，他好像测试了本书中所有的代码和用到的实例，在这个过程中，他找出了书中的很多错误，这真是让人敬佩。
Dave Edson也审阅了本书的部分章节，同时也作为我和Windows Phone产品组之间的桥梁，这使我的一些技术问题和疑问能够得到解决。从最开始，Aaron Stebner提供了重要的指导，Michael Klucher也审阅了本书的一些章节，Kirti Deshpande、Charlie Kindel、Casey McGee和Shawn Oster也告诉了我一些很重要的东西。另外，还要感谢Bonnie Lehenbauer审阅了本书的一个章节。
我也感谢Shawn Hargreaves，他具备的XNA专业知识帮了我不少忙，Yochay Kiriaty和Richard Bailey也告诉了我不少关于墓碑机制（Tombstoning）的内幕知识。
我的妻子Deirdre Sinnott很了不起，在过去的数月里，当我面对电脑屏幕有时变得情绪不稳定、疯狂大叫时，她对我总是很有耐心，而且容忍我的行为。因为我有写书的困难，因此，她也替我分担了不少的家务活。
此外，我也不能责怪本书中还有的bug，因为它们都是属于我的。
Charles Petzold
New York City and Roscoe, New York
October 22, 2010
纠错和书籍支持我们做了最大的努力来确保本书及其附带内容的准确性。如果您发现任何错误，请给微软出版社的书籍支持发邮件。（请注意，这个邮件地址不提供对于微软软件的产品支持。）
我们希望听到您的反馈
对于微软出版社来说，读者满意是最高的优先级，读者的反馈是最珍贵的财产。请通过下面的链接告诉我们您怎样看待本书：
这个调查很短，我们会阅读您的每一条评论和想法，在此提前对您表示感谢。
保持联系我们会一直在Twitter上，让我们继续保持联系吧！
目  录
上篇  基础
第1章  Windows Phone 7简介 1
第2章  支持朝向变化 31
第3章  触控接口简介 52
第4章  位图（或称材质） 71
第5章  传感器和服务 92
第6章  程序架构中的问题 118
下篇  XNA
第7章  移动的理论 158
第8章  材质和子画面 187
第9章  动态的材质 217
第10章  根据手势进行变换 267
第11章  通过触控来玩游戏 339
第12章  通过倾斜来玩游戏 407