目 录
第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 XNA Game 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 GestureDe?nition.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 Game1.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 创建Poker Dice服务 / 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 在游戏中使用Location Services / 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 测试NowPictureThis / 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 制作InGameMenu屏幕 / 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
