內容介紹
如果你迫不及待地想進入Windows Phone 7遊戲開發世界,千萬不要錯過本書!《Windows Phone 7遊戲高級編程:使用XNA Game Studio 4》包含了大量真實示例,對WindowsPhone 7遊戲開發做了深入探索,是手邊必備的一本全面教程。本書首先介紹了Windows Phone 7的特性,然後講解了遊戲開發過程會用到的工具。書中清晰的講解和豐富的代碼示例有助於你深刻理解Windows Phone 7設備,使你能夠立即開始創建自己的遊戲。主要內容
◆ 包含3個完整的遊戲,並就如何將自己的遊戲發布到Windows Phone 7 Marketplace提供了極有幫助的指導
◆ 分享了關於如何使用XNA Game Studio 4的寶貴建議
◆ 逐步講解了如何檢測觸摸輸入和手勢,並通過介紹如何構建和使用一個完整的輸入管理系統,讓你更上一層樓
◆ 解釋了如何使用Microsoft Push Notifi cation Service
◆ 教會你如何使用一個完整的狀態管理系統來管理遊戲和螢幕狀態,而且你可以在自己的遊戲中使用這個狀態管理系統
作者介紹
Chris G. Williams是Magenic的首席諮詢師,為客戶交付定製的.NET解決方案。他是XNA/DirectX方面的Microsoft MVP,經常在用戶組、代碼挑戰營和專業會議上發表演講。George W. Clingerman是一名商業開發人員,擅長使用.NET和SQL來構建WinForm和Web軟體。他還開發遊戲,以及撰寫遊戲開發入門教程。George是XNA方面的Microsoft MVP。
作品目錄
目 錄第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 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 Game1.cs ..................................... 81
5.3 小結 ............................................... 86
第6章 狀態 ........................................... 87
6.1 遊戲狀態 ....................................... 87
Windows Phone 7 遊戲高級編程:使用 XNA Game Studio 4
XII
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
目 錄
XIII
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
Windows Phone 7 遊戲高級編程:使用 XNA Game Studio 4
XIV
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