譯者序
序
歡迎前來冒險
第一部分 Windows和DirectX遊戲編程引言
第1章 Windows初步 2
1.1 Windows編程概述 2
1.1.1 認識Windows 3
1.1.2 Windows消息機製 4
1.1.3 多任務 5
1.1.4 多綫程 6
1.1.5 事件處理 7
1.2 DirectX快速概覽 8
Direct3D是什麼 9
1.3 Windows程序基礎 9
1.3.1 創建第一個Win32項目 10
1.3.2 理解WinMain 16
1.3.3 完整的WinMain 17
1.4 你所學到的 19
1.5 復習測驗 19
1.6 自己動手 19
第2章 偵聽Windows消息 20
2.1 編寫一個真正的Windows程序 20
2.1.1 理解InitInstance 23
2.1.2 理解MyRegisterClass 25
2.1.3 曬一曬WinProc的秘密 27
2.2 什麼是遊戲循環 31
2.2.1 老的WinMain 31
2.2.2 WinMain和循環 33
2.3 GameLoop項目 35
GameLoop程序的源代碼 36
2.4 你所學到的 42
2.5 復習測驗 42
2.6 自己動手 43
第3章 初始化Direct3D 44
3.1 初識Direct3D 44
3.1.1 Direct3D接口 44
3.1.2 創建Direct3D對象 45
3.1.3 讓Direct3D轉起來 47
3.1.4 全屏模式的Direct3D 55
3.2 你所學到的 56
3.3 復習測驗 56
3.4 自己動手 57
第二部分 遊戲編程工具箱
第4章 繪製位圖 60
4.1 錶麵和位圖 60
4.1.1 主錶麵 61
4.1.2 從離屏(off-screen)錶麵 62
4.1.3 Create_Surface示例 64
4.1.4 從磁盤裝載位圖 68
4.1.5 Load_Bitmap程序 69
4.1.6 代碼再利用 73
4.2 你所學到的 73
4.3 復習測驗 73
4.4 自己動手 73
第5章 從鍵盤、鼠標和控製器獲得輸入 74
5.1 鍵盤輸入 74
5.1.1 DirectInput對象和設備 74
5.1.2 初始化鍵盤 75
5.1.3 讀取鍵盤按鍵 77
5.2 鼠標輸入 77
5.2.1 初始化鼠標 77
5.2.2 讀取鼠標 78
5.3 Xbox 360控製器輸入 79
5.3.1 初始化XInput 80
5.3.2 讀取控製器狀態 81
5.3.3 控製器振動 82
5.3.4 測試XInput 82
5.4 精靈編程簡介 88
5.4.1 一個有用的精靈結構 90
5.4.2 裝載精靈圖像 91
5.4.3 繪製精靈圖像 91
5.5 Bomb Catcher遊戲 92
5.5.1 MyWindows.cpp 93
5.5.2 MyDirectX.h 95
5.5.3 MyDirectX.cpp 97
5.5.4 MyGame.cpp 103
5.6 你所學到的 107
5.7 復習測驗 107
5.8 自己動手 108
第6章 繪製精靈並顯示精靈動畫 109
6.1 什麼是精靈 109
6.2 裝載精靈圖像 109
6.3 透明的精靈 111
6.3.1 初始化精靈渲染器 112
6.3.2 繪製透明的精靈 113
6.4 繪製動畫的精靈 120
6.4.1 使用精靈錶 120
6.4.2 精靈動畫演示 123
6.5 你所學到的 126
6.6 復習測驗 126
6.7 自己動手 126
第7章 精靈變換 127
7.1 精靈鏇轉和縮放 127
7.1.1 2D變換 129
7.1.2 繪製變換瞭的精靈 132
7.1.3 Rotate_Scale_Demo程序 134
7.1.4 帶有變換的動畫 136
7.2 你所學到的 139
7.3 復習測驗 140
7.4 自己動手 140
第8章 檢測精靈碰撞 141
8.1 邊界框碰撞檢測 141
8.1.1 處理矩形 141
8.1.2 編寫碰撞函數 142
8.1.3 新的精靈結構 143
8.1.4 為精靈的縮放進行調整 144
8.1.5 邊界框演示程序 144
8.2 基於距離的碰撞檢測 148
8.2.1 計算距離 149
8.2.2 編寫計算距離的代碼 149
8.2.3 測試基於距離的碰撞 150
8.3 你所學到的 151
8.4 復習測驗 151
8.5 自己動手 151
第9章 打印文本 153
9.1 創建字體 153
9.1.1 字體描述符 153
9.1.2 創建字體對象 154
9.1.3 可重用的MakeFont函數 154
9.2 使用ID3DXFont打印文本 155
9.2.1 使用DrawText打印 155
9.2.2 文本摺行 156
9.3 測試字體輸齣 156
9.4 你所學到的 159
9.5 復習測驗 160
9.6 自己動手 160
第10章 捲動背景 161
10.1 捲動 161
10.1.1 背景和布景 162
10.1.2 從圖片單元創建背景 162
10.1.3 基於圖片單元的捲動 163
10.1.4 基於圖片單元的捲動項目 163
10.2 動態渲染圖片單元 168
10.2.1 圖片單元地圖 169
10.2.2 使用Mappy創建圖片單元地圖 170
10.2.3 Tile_Dynamic_Scroll項目 174
Tile_Dynamic_Scroll源代碼 175
10.3 基於位圖的捲動 180
10.3.1 基於位圖的捲動理論 180
10.3.2 位圖捲動演示 181
10.4 你所學到的 184
10.5 復習測驗 184
10.6 自己動手 184
第11章 播放音頻 186
11.1 使用DirectSound 186
11.1.1 初始化DirectSound 187
11.1.2 創建聲音緩衝區 187
11.1.3 裝載波形文件 188
11.1.4 播放聲音 188
11.2 測試DirectSound 189
11.2.1 創建項目 189
11.2.2 修改MyDirectX文件 191
11.2.3 修改MyGame.cpp 193
11.3 你所學到的 199
11.4 復習測驗 199
11.5 自己動手 199
第12章 3D渲染基礎 200
12.1 3D編程介紹 200
12.1.1 3D編程的關鍵組成部分 200
12.1.2 3D場景 201
12.1.3 轉移到第三維 204
12.1.4 掌握3D管綫 205
12.1.5 頂點緩衝區 206
12.1.6 渲染頂點緩衝區 208
12.1.7 創建四邊形 209
12.2 帶紋理的立方體示例 211
MyGame.cpp 213
12.3 你所學到的 219
12.4 復習測驗 219
12.5 自己動手 220
第13章 渲染3D模型文件 221
13.1 創建及渲染後援網格 221
13.1.1 創建後援網格 221
13.1.2 渲染後援網格 223
13.1.3 Stock_Mesh程序 224
13.2 裝載並渲染模型文件 226
13.2.1 裝載.X文件 226
13.2.2 渲染完整的模型 231
13.2.3 從內存中刪除一個模型 231
13.2.4 Render_Mesh程序 232
13.3 你所學到的 239
13.4 復習測驗 239
13.5 自己動手 240
第三部分 遊 戲 項 目
第14章 Anti-Virus(反病毒)遊戲 242
14.1 Anti-Virus遊戲 242
14.1.1 遊戲玩法 243
14.1.2 遊戲源代碼 251
14.2 你所學到的 264
14.3 復習測驗 264
14.4 自己動手 264
第四部分 附 錄
附錄A 配置Visual C++ 268
附錄B 可進一步學習的資源 274
附錄C 各章測驗答案 278
附錄D 附加示例 287
· · · · · · (
收起)