第1章 了解Windows Phone 7设备 1
1.1 最低配置 1
1.1.1 外观设计 2
1.1.2 屏幕分辨率 2
1.2 手机功能 2
1.2.1 电容式触控 3
1.2.2 传感器 3
1.2.3 数码相机 4
1.2.4 DirectX 9加速 5
1.2.5 正面按钮 5
1.2.6 QWERTY键盘 6
1.3 软件功能 6
1.3.1 Start和Lock屏幕 6
1.3.2 hub 6
1.3.3 其他应用程序 8
1.4 小结 9
第2章 入门 11
2.1 获取所需工具 11
2.1.1 系统需求 12
2.1.2 开发人员的要求 12
2.1.3 获取的工具 12
2.2 XNAGame Studio 4.0 13
2.2.1 创建第一个项目 14
2.2.2 Windows Phone游戏和其他XNA游戏项目的区别 15
2.3 设置Windows Phone设备 18
2.4 使用Windows Phone Emulator 18
2.5 使用命令行选项 21
2.6 小结 22
第3章 方向 23
3.1 设备方向 23
3.1.1 设置设备方向 23
3.1.2 检测设备方向 27
3.1.3 以全屏模式运行 27
3.2 加速计 29
3.3 小结 34
第4章 触控输入 35
4.1 触控事件的响应 35
4.1.1 触控界面概述 35
4.1.2 触控输入的检测 36
4.1.3 手势检测 40
4.1.4 触控游戏的设计 46
4.2 SIP 48
4.3 小结 51
第5章 获取输入 53
5.1 创建输入管理系统 53
5.1.1 Input.cs 53
5.1.2 GestureDefinition.cs 69
5.1.3 GameInput.cs 70
5.1.4 TouchIndicator.cs 76
5.1.5 TouchIndicatorCollection.cs 79
5.2 使用输入管理系统 80
5.2.1 Actions.cs 80
5.2.2 Gamel.cs 81
5.3 小结 86
第6章 状态 87
6.1 游戏状态 87
6.1.1 管理游戏状态 88
6.1.2 处理多层屏幕 108
6.2 手机硬件事件 109
6.2.1 检测Back按钮 109
6.2.2 重写Back按钮 109
6.3 游戏中断 110
6.3.1 通知与临时中断 111
6.3.2 游戏停止事件 114
6.4 保存游戏状态 114
6.5 小结 118
第7章 播放音乐 119
7.1 处理音频 119
7.1.1 使用MediaPlayer播放音频 119
7.1.2 SoundEffect 125
7.2 XACT 3.0 129
7.3 录制音频 130
7.3.1 Microphone类 130
7.3.2 保存并检索捕获的音频 135
7.4 小结 137
第8章 综合应用:DriVe&Dodge游戏 139
8.1 创建游戏 140
8.1.1 屏幕 140
8.1.2 输入包装类 164
8.1.3 添加声音和音乐 189
8.1.4 更多的屏幕 194
8.1.5 为游戏主屏幕编写代码 199
8.1.6 完成MainGame屏幕:连接精灵并使游戏可玩 206
8.1.7 保存分数 214
8.1.8 正确处理Back按钮 227
8.2 创建一个基本的游戏模板 231
8.2.1 只保留基本要素 231
8.2.2 创建模板 234
8.2.3 使用模板 234
8.3 小结 235
第9章 3D游戏 237
9.1 3D图形 237
9.1.1 为游戏创建3D模型 237
9.1.2 在游戏中使用3D模型 241
9.1.3 在Blender中为基本的3D模型添加纹理 243
9.1.4 执行3D变换 246
9.1.5 创建3D动画 248
9.1.6 Microsoft Skinning Sample 253
9.2 设置效果 254
9.2.1 预置效果 255
9.2.2 使用Reach Graphics Demo 256
9.3 小结 256
第10章 推送通知与振动功能 257
10.1 理解推送通知 257
10.1.1 raw通知 258
10.1.2 弹出式toast通知 266
10.1.3 磁贴通知 273
10.2 好用的振动功能 280
10.2.1 Microsoft.Devices命名空间 280
10.2.2 Environment类 281
10.2.3 VibrateController类 282
10.3 小结 284
第11章 创建和使用服务 285
11.1 使用Web服务 285
11.1.1 LiveToServeYou示例 286
11.1.2 ServeMe示例 290
11.2 全球高分榜系统 295
11.2.1 HighScoreService项目 295
11.2.2 ScoreMe项目 302
11.2.3 匿名Live ID 303
11.2.4 HighScoreClient类 304
11.2.5 推送通知 305
11.2.6 HighScoreTester项目 309
11.2.7 测试高分榜服务 313
11.3 配对系统 314
11.3.1 MatchMaker项目 314
11.3.2 MatchMe项目 320
11.3.3 MatchMakerTester项目 325
11.4 处理HTTP请求 329
11.4.1 WeatherWitch项目 330
11.4.2 在游戏中使用RSS提要 333
11.4.3 基于REST的Web服务 333
11.5 小结 334
第12章 综合应用:Poker Dice with Friends游戏 335
12.1 初步准备 335
12.1.1 服务流程与屏幕流程 336
12.1.2 创建PokerDice服务 336
12.1.3 创建PokerDiceTester应用程序 350
12.2 创建Poker Dice with Friends游戏 356
12.2.1 创建游戏项目模板 356
12.2.2 修改模板 357
12.2.3 增强ScreenStateSwitchboard类 359
12.2.4 创建GameInformation和DiceGame辅助类 367
12.2.5 创建游戏大厅 370
12.2.6 创建GameInfo界面 382
12.2.7 添加骰子模型 390
12.2.8 创建MainGame界面 400
12.2.9 创建DiceSelect界面 403
12.3 增强游戏 409
12.4 小结 410
第13章 Location API 411
13.1 理解和使用Location API 411
13.2 使用Location Services的最佳实践 411
13.2.1 得到用户许可 411
13.2.2 电量消耗 412
13.2.3 精确度级别 412
13.2.4 移动阈值 412
13.3 在游戏中使用LocationServices 412
13.3.1 CivicAddress类 412
13.3.2 CivicAddressResolver类 413
13.3.3 GeoCoordinate类 418
13.3.4 GeoPosition类 424
13.4 小结 424
第14章 启动器和选择器 425
14.1 常用的启动器和选择器 425
14.2 NowPictureThis 426
14.2.1 CameraCaptureTask 427
14.2.2 Application Deployment工具 429
14.2.3 测试NowPict?reThis 430
14.2.4 PhotoChooserTask 431
14.3 用于消息传递任务的类 433
14.3.1 SmsComposeTask 433
14.3.2 EmailComposeTask 434
14.3.3 EmailAddressChooserTask 434
14.4 MediaPlayerLauncher 435
14.4.1 Controls属性 436
14.4.2 Location属性 436
14.4.3 Media属性 437
14.5 小结 437
第15章 综合应用:Picture Puzzle游戏 439
15.1 Picture Puzzle游戏 439
15.2 设计屏幕流 440
15.3 创建拼图 440
15.3.1 创建Title屏幕 441
15.3.2 增强ScreenStateSwitchboard类 443
15.3.3 创建NewPuzzle屏幕 447
15.3.4 拼图块 452
15.3.5 管理状态对象 464
15.3.6 创建SelectPuzzle屏幕 465
15.3.7 创建可玩的游戏屏幕 470
15.3.8 制作InGarneMenu屏幕 474
15.3.9 创建PuzzleComplete屏幕 477
15.4 改进游戏 479
15.5 小结 479
第16章 后续工作 481
16.1 试用模式 481
16.1.1 了解试用模式 481
16.1.2 检测试用模式 482
16.2 将游戏固定到Start区域 489
16.3 发布 491
16.3.1 要求 491
16.3.2 提交 491
16.3.3 代码签名 493
16.4 到哪里获取帮助 494
16.4.1 论坛 494
16.4.2 博客 494
16.4.3 搜索 494
16.5 小结 495