第1部分 入門
第1章 學習開發遊戲的基礎知識 3
1.1 認識視頻遊戲 3
1.1.1 為什麼人們如此沉迷於開發視頻遊戲 4
1.1.2 視頻遊戲的類型 5
1.2 學習遊戲設計的要素 7
1.2.1 提齣基本思想 7
1.2.2 整理劇情 8
1.2.3 可視化圖形 9
1.2.4 為遊戲選擇正確的聲音 10
1.2.5 使用控製器控製遊戲 10
1.2.6 確定遊戲模式 11
1.3 麵嚮對象的編程和遊戲 12
1.3.1 理解OOP 12
1.3.2 在遊戲中應用OOP 13
1.4 研究相關工具 14
1.4.1 編譯器和開發環境 15
1.4.2 選擇圖形工具 15
1.4.3 選擇聲音和音樂工具 15
1.5 小結 16
1.6 親身實踐 16
第2章 創建遊戲引擎 17
2.1 什麼是遊戲引擎 17
2.2 考慮遊戲引擎的作用 18
2.2.1 將遊戲分解為事件 18
2.2.2 建立遊戲的計時機製 19
2.3 開發遊戲引擎 21
2.3.1 遊戲事件函數 21
2.3.2 GameEngine類 22
2.4 開發Blizzard示例 33
2.4.1 編寫程序代碼 33
2.4.2 測試完成的程序 37
2.5 小結 38
2.6 遊戲大變身 38
第3章 學習繪製基本圖形 39
3.1 圖形基礎 39
3.1.1 理解圖形坐標係統 40
3.1.2 學習顔色的基礎知識 40
3.2 查看Windows中的圖形 42
3.2.1 使用設備環境 42
3.2.2 使用畫筆寫 43
3.2.3 使用畫刷繪製 44
3.2.4 使用位圖繪製圖像 44
3.2.5 使用調色闆管理顔色 44
3.3 繪製窗口 45
3.3.1 繪製文本 46
3.3.2 繪製圖元 47
3.3.3 使用畫筆和畫刷 49
3.4 開發Crop Circles示例 50
3.4.1 編寫程序代碼 51
3.4.2 測試完成的程序 54
3.5 小結 54
3.6 親身實踐 55
第4章 繪製圖形圖像 56
4.1 位圖圖像的基礎知識 56
4.2 深入學習位圖 58
4.3 開發位圖類 58
4.3.1 位圖類的工作原理 59
4.3.2 整閤代碼 59
4.4 開發Slideshow示例 62
4.4.1 編寫程序代碼 62
4.4.2 匯集資源 65
4.4.3 測試完成的程序 67
4.5 小結 67
4.6 遊戲大變身 68
第2部分 與遊戲玩傢交互
第5章 使用鍵盤和鼠標控製遊戲 71
5.1 遊戲與用戶輸入 71
5.2 瞭解用戶輸入設備 73
5.2.1 接受鍵盤輸入 73
5.2.2 響應鼠標 74
5.2.3 使用遊戲杆交互 75
5.3 評估遊戲的鍵盤輸入 75
5.4 跟蹤鼠標 76
5.5 嚮遊戲引擎添加輸入支持 77
5.5.1 添加鍵盤支持 78
5.5.2 添加鼠標支持 78
5.5.3 修改Bitmap類 79
5.6 開發UFO示例 81
5.6.1 編寫程序代碼 82
5.6.2 測試完成的程序 85
5.7 小結 86
5.8 親身實踐 86
第6章 示例遊戲:Brainiac 87
6.1 遊戲的玩法 87
6.2 設計遊戲 88
6.3 開發遊戲 89
6.4 測試遊戲 95
6.5 小結 96
6.6 遊戲大變身 97
第7章 使用遊戲杆改進輸入 98
7.1 瞭解遊戲杆的基礎知識 98
7.2 校準遊戲杆 99
7.3 追蹤遊戲杆的移動 101
7.4 嚮遊戲引擎添加遊戲杆支持 103
7.4.1 訪問Win32多媒體功能 103
7.4.2 開發遊戲杆代碼 104
7.5 開發UFO 2示例 108
7.5.1 編寫程序代碼 108
7.5.2 測試完成的程序 110
7.6 小結 111
7.7 親身實踐 112
第8章 示例遊戲:Light Cycles 113
8.1 遊戲的玩法 114
8.2 設計遊戲 114
8.3 開發遊戲 116
8.4 測試遊戲 127
8.5 小結 128
8.6 遊戲大變身 128
第3部分 在遊戲中使用子畫麵
第9章 使用子畫麵動畫移動對象 131
9.1 理解動畫的基礎知識 131
9.1.1 動畫和幀頻 132
9.1.2 瞭解計算機動畫 132
9.2 2D動畫與3D動畫 133
9.3 理解2D動畫的類型 134
9.3.1 基於幀的動畫 134
9.3.2 基於形狀的動畫 134
9.4 將子畫麵動畫應用於遊戲 138
9.5 設計通用的子畫麵 139
9.6 創建Sprite類 141
9.6.1 創建和破壞子畫麵 142
9.6.2 更新子畫麵 143
9.6.3 繪製子畫麵 145
9.7 開發Planets示例程序 146
9.7.1 編寫程序代碼 146
9.7.2 測試完成的程序 150
9.8 小結 151
9.9 親身實踐 152
第10章 管理子畫麵 153
10.1 瞭解管理子畫麵的需求 153
10.2 設計子畫麵管理器 154
10.3 嚮遊戲引擎添加子畫麵管理器 155
10.3.1 改進Sprite類 155
10.3.2 增強遊戲引擎 157
10.4 使用雙重緩存消除閃爍 159
10.5 開發Planets 2示例 161
10.5.1 編寫程序代碼 161
10.5.2 測試完成的程序 165
10.6 小結 165
10.7 遊戲大變身 166
第11章 示例遊戲:Henway 167
11.1 遊戲的玩法 167
11.2 設計遊戲 169
11.3 開發遊戲 170
11.4 測試遊戲 177
11.5 小結 179
11.6 遊戲大變身 179
第4部分 使用聲音和音樂
第12章 播放數字聲音效果 183
12.1 理解數字聲音 183
12.2 瞭解Windows波形聲音 185
12.3 瞭解聲音工具 186
12.3.1 Sony Sound Forge 187
12.3.2 Adobe Audition 187
12.3.3 廉價的聲音編輯器 187
12.4 創建和編輯聲音 187
12.5 查找聲音和音樂 188
12.6 訪問波形聲音 188
12.7 播放波形聲音 189
12.7.1 播放文件中的波形聲音 190
12.7.2 播放作為資源的波形聲音 190
12.7.3 循環播放波形聲音 191
12.7.4 停止播放波形聲音 191
12.8 開發Brainiac 2示例程序 192
12.8.1 編寫程序代碼 192
12.8.2 組閤資源 194
12.8.3 測試完成的遊戲 195
12.9 小結 196
12.10 親身實踐 196
第13章 播放MIDI音樂 198
13.1 感受MIDI音樂 198
13.2 理解Windows媒體控製接口 200
13.3 使用MCI播放MIDI音樂 201
13.3.1 打開MIDI設備 201
13.3.2 播放MIDI歌麯 202
13.3.3 暫停MIDI歌麯 203
13.3.4 關閉MIDI設備 203
13.4 嚮遊戲引擎添加MIDI音樂支持 203
13.5 開發Henway 2示例程序 205
13.5.1 編寫程序代碼 205
13.5.2 測試完成的遊戲 209
13.6 小結 210
13.7 親身實踐 210
第14章 示例遊戲:Battle Office 211
14.1 遊戲的玩法 211
14.2 設計遊戲 212
14.3 開發遊戲 215
14.4 測試遊戲 222
14.5 小結 223
14.6 親身實踐 224
第5部分 高級動畫
第15章 實現子畫麵外觀動畫 227
15.1 再次介紹幀動畫 227
15.2 設計動畫子畫麵 228
15.3 嚮遊戲引擎添加動畫子畫麵支持 230
15.3.1 隻繪製位圖的一部分 230
15.3.2 對Sprite類實現動畫 231
15.4 開發Battle Office 2示例程序 233
15.4.1 編寫程序代碼 233
15.4.2 測試完成的遊戲 235
15.5 小結 235
15.6 遊戲大變身 236
第16章 創建子畫麵背景 237
16.1 瞭解遊戲背景的重要性 237
16.2 瞭解遊戲背景的類型 238
16.2.1 純色背景 238
16.2.2 圖像背景 239
16.2.3 動畫背景 239
16.2.4 滾動背景 239
16.3 嚮遊戲引擎添加背景支持 240
16.3.1 創建基本的背景類 240
16.3.2 創建動畫背景類 242
16.4 開發Roids示例 245
16.4.1 編寫程序代碼 245
16.4.2 測試完成的遊戲 248
16.5 小結 248
16.6 親身實踐 249
第17章 示例遊戲:Meteor Defense 250
17.1 遊戲的玩法 250
17.2 設計遊戲 251
17.3 增強遊戲引擎中的子畫麵 254
17.4 開發遊戲 256
17.5 測試遊戲 264
17.6 小結 265
17.7 遊戲大變身 265
第6部分 讓遊戲擁有大腦
第18章 教遊戲思考 269
18.1 理解人工智能 269
18.2 瞭解遊戲AI的類型 271
18.2.1 漫遊AI 272
18.2.2 行為AI 274
18.2.3 策略AI 275
18.3 開發AI策略 276
18.4 開發Roids 2示例程序 276
18.4.1 編寫程序代碼 277
18.4.2 測試完成的程序 280
18.5 小結 281
18.6 親身實踐 281
第19章 示例遊戲:Space Out 282
19.1 遊戲的玩法 282
19.2 設計遊戲 283
19.3 嚮遊戲引擎中添加另一個子畫麵特性 286
19.4 開發遊戲 287
19.5 測試遊戲 297
19.6 小結 298
第7部分 增添遊戲的趣味性
第20章 使用閃屏增添遊戲的活力 303
20.1 閃屏的重要性 303
20.2 瞭解閃屏 304
20.3 創建Space Out 2遊戲 305
20.3.1 編寫遊戲代碼 305
20.3.2 測試完成的遊戲 309
20.4 小結 309
20.5 親身實踐 309
第21章 使用演示模式展示遊戲 311
21.1 什麼是演示模式 311
21.2 演示模式的細節 312
21.3 開發Space Out 3遊戲 313
21.3.1 編寫遊戲代碼 313
21.3.2 測試完成的遊戲 318
21.4 小結 319
21.5 遊戲大變身 320
第22章 記錄高分 321
22.1 記錄得分的重要性 321
22.2 確定高分數據模型 322
22.3 存儲和檢索高分數據 323
22.4 開發Space Out 4遊戲 325
22.4.1 編寫遊戲代碼 325
22.4.2 測試完成的遊戲 330
22.5 小結 331
22.6 親身實踐 332
第8部分 附加練習
第23章 使用滾動背景更改遠景 335
23.1 什麼是滾動背景 335
23.1.1 橫嚮滾動的背景 336
23.1.2 縱嚮滾動的背景 336
23.1.3 視差滾動背景 337
23.2 理解滾動背景的工作原理 337
23.3 嚮遊戲引擎添加滾動背景支持 338
23.3.1 創建背景圖層類 339
23.3.2 創建滾動背景類 344
23.4 開發Wanderer示例 346
23.4.1 編寫程序代碼 346
23.4.2 測試完成的程序 354
23.5 小結 355
23.6 遊戲大變身 355
第24章 示例遊戲:Stunt Jumper 357
24.1 遊戲的玩法 357
24.2 設計遊戲 359
24.3 開發遊戲 361
24.4 測試遊戲 374
24.5 小結 376
24.6 遊戲大變身 376
24.7 親身實踐 377
配套光盤上的附錄
附錄A 選擇遊戲開發工具 CD:381
A.1 Microsoft Visual C++ CD:382
A.2 Borland C++ Builder CD:383
A.3 Bloodshed Dev-C++ CD:383
A.4 DJGPP CD:383
附錄B C++編程入門 CD:384
B.1 C++語言基礎 CD:384
B.2 C++開發周期 CD:385
B.3 創建一個簡單的C++程序 CD:385
B.4 使用注釋說明代碼 CD:387
B.5 使用空白分割代碼 CD:387
B.6 將代碼組織到函數中 CD:387
B.7 使用錶達式操作數據 CD:388
B.8 增強程序示例 CD:389
B.9 變量和常量 CD:390
B.9.1 變量的類型 CD:391
B.9.2 區分大小寫 CD:392
B.9.3 關鍵字 CD:392
B.9.4 字符串和數組 CD:392
B.10 if語句 CD:393
B.11 關係運算符 CD:393
B.12 函數 CD:395
B.13 全局變量 CD:396
B.14 模塊 CD:397
B.15 執行多次操作 CD:397
B.16 至少執行一次操作 CD:398
B.17 執行0次或多次操作 CD:398
B.18 for循環 CD:399
B.19 switch語句 CD:399
B.20 加1和減1 CD:400
B.21 學習類的基礎知識 CD:401
B.21.1 類與實例 CD:401
B.21.2 理解方法 CD:402
B.21.3 初始化和清理對象 CD:402
B.21.4 析構函數 CD:403
B.22 進一步學習 CD:403
附錄C Windows遊戲編程入門 CD:404
C.1 Windows編程基礎 CD:404
C.1.1 事件驅動編程 CD:405
C.1.2 使用消息通信 CD:405
C.1.3 理解設備獨立性 CD:406
C.1.4 將程序信息存儲為資源 CD:406
C.1.5 處理陌生的數據類型 CD:406
C.1.6 非傳統的編碼約定 CD:407
C.2 深入瞭解Windows程序 CD:408
C.2.1 入門 CD:408
C.2.2 窗口類 CD:408
C.2.3 創建窗口 CD:409
C.2.4 處理消息 CD:410
C.2.5 窗口過程 CD:411
C.2.6 使用資源 CD:412
C.3 開發Skeleton示例 CD:413
C.3.1 編寫程序代碼 CD:414
C.3.2 組閤資源 CD:416
C.3.3 測試完成的程序 CD:417
附錄D 創建遊戲圖形 CD:418
D.1 評估遊戲圖形 CD:418
D.1.1 確定遊戲屏幕大小 CD:418
D.1.2 考慮目標觀眾的影響 CD:419
D.1.3 確定遊戲環境和情緒 CD:419
D.1.4 堅持一種圖形風格 CD:420
D.2 瞭解圖形工具 CD:420
D.2.1 Image Alchemy CD:420
D.2.2 Paint Shop Pro CD:421
D.2.3 Graphic Workshop CD:421
D.3 創建和編輯圖形 CD:421
D.3.1 藝術綫條圖形 CD:421
D.3.2 3D渲染圖形 CD:422
D.3.3 掃描的照片和視頻捕捉的圖形 CD:422
D.3.4 背景圖形和紋理 CD:423
D.3.5 動畫圖形 CD:423
D.4 查找圖形 CD:423
· · · · · · (
收起)