圖書簡介
本書講解使用Java進行2D遊戲開發的基礎知識和基本技能。本書共18章,分為基礎知識、提高技能和完整遊戲3個部分,詳細介紹套用編程、全螢幕遊戲、輸入處理、矩陣變換、基礎物理、相交測試、碰撞檢測等知識點和技能,最後採用介紹的所有概念,從頭到尾開發了一款完整的遊戲。
目錄
第 一部分 基礎知識 1
第 1章Hello World 1
1.1使用FrameRate類 1
1.2創建Hello World應用程式 2
1.3使用主動渲染 4
1.4創建定製的渲染執行緒 6
1.5創建一個主動渲染的視窗 9
1.6修改顯示模式 11
1.7全螢幕顯示模式中的主動渲染 15
1.8資源和延伸閱讀 18
第 2章 18
2.1處理鍵盤輸入 19
2.2鍵盤改進 23
2.3處理滑鼠輸入 25
2.4相對滑鼠移動 33
2.5資源和延伸閱讀 41
第3章變換 41
3.1使用Vector2f類 42
3.2使用極坐標 50
3.3理解點和向量 55
3.4使用矩陣變換 57
3.5行主序矩陣和列主序矩陣 58
3.6理解Matrix3x3f類 59
3.7仿射變換 70
3.8資料和延伸閱讀 72
第4章 時間和空間 72
4.1計算時間增量 72
4.2螢幕映射 78
4.3調整視口高寬比 84
4.4大炮實例 90
4.6資料和延伸閱讀 96
第5章 簡單遊戲框架 96
5.1螢幕到世界的轉換 96
5.2理解簡單框架 98
5.3使用簡單框架模板 104
5.4資源和延伸閱讀 106
第6章Vector2f更新 106
6.1 inv( ) 106
6.2add( ) 107
6.3sub( ) 107
6.4mul( ) 107
6.5div( ) 108
6.6len( )和lenSqr( ) 108
6.7norm( ) 108
6.8perp( ) 109
6.9dot( ) 109
6.10angle( ) 110
6.11polar( ) 110
6.12toString( ) 110
6.12資源和延伸閱讀 113
第7章 相交測試 113
7.1多邊形中的點的測試 113
7.1.1多邊形特例中的點 115
7.1.2多邊形示例中的點 116
7.2使用軸對齊邊界框進行相交測試 120
7.3使用圓形測試相交 121
圓和AABB的重合 122
7.4使用分隔軸方法 129
7.5使用線段-線段的重疊方法 130
7.6使用矩形-矩形的重疊方法 133
7.7最佳化測試 137
7.8資源和延伸閱讀 137
第8章 遊戲原型 138
8.1創建一個多邊形包裝類 138
8.2創建一個原型小行星 145
8.3創建一個原型編輯器 149
8.4用原型小行星工廠生產小行星 153
8.5原型Bullet類 159
8.6原型Ship類 160
8.7編寫原型遊戲 165
第9章檔案和資源 172
9.1理解Java如何處理檔案和目錄 172
9.2理解輸入/輸出流 174
9.3創建Resources.jar檔案進行測試 179
9.4將資源放到類路徑上 181
9.5製作資源載入工具包 184
9.6利用Java屬性 186
9.7XML檔案概覽 191
9.8資源和延伸閱讀 199
第 10章圖像 199
10.1學習Java中的顏色 199
10.2了解不同的圖像類型 200
10.3執行顏色插值 205
10.4使用VolatileImage提高速度 209
10.5創建透明圖像 213
10.6使用alpha合成的規則 215
10.7繪製精靈 222
10.8探索不同的縮放算法 231
10.9資源與延伸閱讀 246
第 11章文本 246
11.1理解Java字型 247
11.2製作繪製字元串工具 251
11.3使用文本度量進行布局 254
11.4支持執行緒安全的鍵盤輸入 265
11.5資源和延伸閱讀 271
第 12章 執行緒 271
12.1使用執行緒實現Callable任務 272
12.2使用執行緒載入檔案 274
12.3使用FakeHardware類測試 277
12.4使用等待/通知方法 281
12.5在遊戲循環中使用執行緒 283
12.6使用狀態機 291
12.7 OneShotEvent類 292
12.8LoopEvent類 294
12.9RestartEvent類 296
12.10多執行緒事件示例 299
12.11資源和延伸閱讀 301
第 13章聲音 301
13.1操作聲音檔案 303
13.2使用聲音庫的問題 304
13.3開發阻塞音頻類 308
13.4用阻塞的Clip類 310
13.5使用AudioDataLine類 314
13.6BlockingDataLine類 320
13.7創建一個SoundEvent類 322
13.8使用OneShotEvent類 324
13.9使用LoopEvent類 325
13.10使用RestartEvent類 326
13.11添加聲音控制項 331
13.12資源和延伸閱讀 339
第 14章用ANT進行開發 339
14.1安裝ANT軟體 340
14.2理解構建腳本的格式 340
14.3學習常見ANT任務 343
14.4構建一個可擴展的構建腳本 345
14.5資源和延伸閱讀 350
第 15章碰撞檢測 351
15.1帶碰撞檢測的彈球 351
15.2使用直線參數方程 355
15.3查找直線-矩形相交 356
15.4查找圓-直線相交 362
15.5查找直線-直線相交 367
15.6計算一個反射向量 372
15.7在一個多邊形中彈回一個點 375
15.8資源和延伸閱讀 381
第 16章工具 382
16.1創建一個遊戲框架 382
16.2更新多邊形編輯器 394
16.3繪製精靈 408
16.4創建一個簡單的粒子引擎 411
16.5資源和延伸閱讀 416
17.1 Bullet類 417
17.2PolygonWrapper類 418
17.3Particle類 421
17.4Asteroid類 422
17.5 AsteroidFactory類 425
17.6AsteroidExplosion類 428
17.7Ship類 430
17.8ShipFactory類 435
17.9ShipExplosion類 437
17.10添加遊戲常量 438
17.11Acme類 439
17.12GameState類 440
17.13Score類 441
17.14QuickLooper類 441
17.15QuickRestart類 443
17.16HighScoreMgr類 445
17.17管理狀態 448
17.18StateController類 449
17.19CompleteGame類 450
17.20GameLoading狀態 453
17.21AttractState類 458
17.22PressSpaceToPlay模式 461
17.23HighScore狀態 461
17.24GameInformationState類 462
17.25LevelStarting狀態 463
17.26LevelPlaying狀態 464
17.27GameOver狀態 470
17.28EnterHighScoreName狀態 471
17.29創建構建腳本 476
17.30資源和延伸閱讀 477
第 18章結論 477
資源和延伸閱讀 482