目 錄
第1章 游戲程序設計概述 1
1.1 計算機游戲的概念 1
1.2 計算機游戲的分類 2
1.2.1 角色扮演游戲(RPG,Role-Playing Game) 2
1.2.2 動作類游戲(ACT, Action Game) 3
1.2.3 實時策略游戲(RTS,Real-Time Strategy Game ) 3
1.2.4 第一視覺射擊游戲(FPS,F(xiàn)irst-Person Shooter) 3
1.2.5 模擬游戲(Simulation Game) 4
1.2.6 體育類游戲(SRT,Sports Game) 4
1.3 設計游戲的要素 4
1.3.1 策劃 5
1.3.2 程序 5
1.3.3 美術 5
1.3.4 音樂 6
1.4 計算機游戲的發(fā)展趨勢 6
1.4.1 沉浸感 6
1.4.2 交互性 6
1.4.3 國際化 7
第2章 Win32應用程序 8
2.1 VS2010中Win32應用程序創(chuàng)建過程 8
2.2 Windows主函數(shù) 11
2.3 窗口建立過程 12
2.4 Windows消息循環(huán) 14
2.5 窗口過程函數(shù) 15
2.6 Win32應用程序示例 16
2.7 游戲程序框架 18
第3章 Windows繪圖函數(shù) 22
3.1 屏幕繪圖的相關概念 22
3.1.1 窗口和視口 22
3.1.2 GDI 坐標系 23
3.2 畫筆,畫刷與文字 25
3.2.1 GDI對象的建立 25
3.2.2 GDI對象的選用與刪除 27
3.2.3 GDI示例 27
3.3 GDI繪圖函數(shù) 31
3.3.1 點線函數(shù) 31
3.3.2 形狀函數(shù) 32
3.3.3 填充函數(shù) 33
第4章 游戲中的角色與場景 34
4.1 位圖顯示 34
4.2 鏤空貼圖 37
4.2.1 使用BitBlt()中的參數(shù)Raster完成鏤空貼圖 38
4.2.2 使用TransparentBlt()函數(shù)完成鏤空貼圖 39
4.3 地圖顯示 40
4.3.1 平面拼接地圖 40
4.3.2 斜角拼接地圖 43
第5章 動畫 48
5.1 使用定時器完成游戲動畫 48
5.1.1 建立定時器 48
5.1.2 刪除定時器 49
5.1.3 示例 49
5.2 利用消息循環(huán)完成游戲動畫 51
5.2.1 利用消息循環(huán)完成動畫原理 51
5.2.2 示例 53
第6章 鍵盤與鼠標交互 55
6.1 Windows鍵盤消息處理 55
6.1.1 Windows鍵盤概述 55
6.1.2 鍵盤消息處理 56
6.1.3 鍵盤交互程序示例 57
6.2 Windows鼠標消息處理 61
6.2.1 鼠標消息的處理方式 61
6.2.2 示例 63
6.2.3 相關函數(shù)的講解 69
第7章 運動與碰撞檢測 71
7.1 運動 71
7.1.1 勻速直線運動 71
7.1.2 變速運動 75
7.2 碰撞檢測 77
7.2.1 以物體框架來檢測碰撞 77
7.2.2 用顏色來檢測碰撞 79
7.3 粒子系統(tǒng) 83
第8章 3D游戲概述 84
8.1 3D坐標系及轉換 84
8.2 模型對象的建立 85
8.3 視圖變換 85
8.3.1 平移變換 86
8.3.2 旋轉變換 86
8.3.3 縮放變換 87
8.4 投影變換 87
8.5 3D游戲的開發(fā)手段 88
第9章 Direct3D簡介 90
9.1 Direct3D的體系結構 90
9.1.1 Direct3D的繪制流程 90
9.1.2 Direct3D繪制程序框架圖 91
9.2 Direct3D開發(fā)環(huán)境配置 92
9.3 Direct3D初始化 94
9.3.1 創(chuàng)建Direct3D接口對象。 95
9.3.2 獲取設備的硬件信息 95
9.3.3 填充D3DPRESENT_PARAMETERS結構體 96
9.3.4 IDirect3D設備接口的創(chuàng)建 98
9.4 Direct3D渲染 99
9.4.1 清屏操作 99
9.4.2 繪制 100
9.4.3 翻轉顯示 100
9.4.4 Direct3D的渲染過程 101
9.5 Direct3D中二維文本的繪制 102
9.6 Direct3D框架程序 104
第10章 Direct3D圖形繪制基礎 111
10.1 以頂點緩存為數(shù)據(jù)源的圖形繪制 112
10.1.1 基礎知識 112
10.1.2 在Direct3D編程中使用頂點緩存的四個步驟 113
10.2 頂點緩存程序示例 120
10.3 以索引緩存為數(shù)據(jù)源的圖形繪制 123
10.2.1 索引緩存繪圖 124
10.4 索引緩存程序示例 128
10.5 Direct3D內置幾何體概述 132
10.3.1 立方體的創(chuàng)建 132
10.3.2 圓柱體的創(chuàng)建 133
10.3.3 2D 多邊形的創(chuàng)建 134
10.3.4 球體創(chuàng)建 134
10.3.5 圓環(huán)的創(chuàng)建 135
10.3.6 茶壺的創(chuàng)建 135
第11章 Direct3D變換 137
11.1 視圖變換 137
11.2 投影變換 141
11.3 視口變換 142
11.4 Direct3D變換示例 143
11.5 Direct3D固定功能渲染流水線概述 148
第12章 Direct3D光照與材質 150
12.1 光照類型 150
12.1.1 環(huán)境光 150
12.1.2 漫反射光 151
12.1.3 鏡面反射光 151
12.1.4 自發(fā)光 152
12.2 光源類型。 152
12.2.1 點光源 154
12.2.2 方向光源 154
12.2.3 聚光燈光源 155
12.3 材質 155
12.4 燈光與材質示例 157
第13章 紋理映射 163
13.1 紋理映射的概念 163
13.2 Direct3D中紋理映射的實現(xiàn)方法 163
13.2.1 紋理坐標的定義 163
13.2.2 頂點坐標與紋理坐標的對應 164
13.2.3 紋理的創(chuàng)建 165
13.2.4 紋理的啟用 166
13.3 紋理繪制示例 168
第14章 游戲引擎 174
14.1 什么是游戲引擎 174
14.2 目前比較流行的幾款主流引擎 175
14.3 Unity游戲引擎簡介 176
14.4 Unity下載與安裝 178
第15章 Unity程序開發(fā)框架和編輯器使用 181
15.1 Unity程序開發(fā)框架、工程和應用以及場景的關系 181
15.2 工程的創(chuàng)建和導入 182
15.3 Unity編輯器介紹 184
15.3.1 官方資源導入方法: 184
15.3.2 場景中的6個視圖 185
15.3.3 編輯器界面設置。 186
15.3.1 Unity編輯器——Project(項目視圖) 186
15.3.2 Unity編輯器——Hierarchy(層次視圖) 188
15.3.3 Unity編輯器——Inspector(檢視視圖) 190
15.3.4 Unity編輯器——Scene(場景視圖) 192
15.3.5 Unity編輯器——Game(游戲視圖) 194
15.3.6 Unity編輯器——Console(控制臺視圖) 195
第16章 資源和游戲對象 196
16.1 Unity資源 196
16.1.1 場景、資源、游戲對象、組件間的關系 196
16.1.2 內部資源創(chuàng)建 198
16.1.3 外部資源導入 199
16.1.4 Unity中預設的創(chuàng)建 200
16.1.5 Unity中圖片、模型和音頻、視頻的支持 200
16.2 Unity 常用組件介紹 201
16.2.1 Transform(變換組件) 202
16.2.2 Camera(攝像機組件) 203
16.2.3 Lights(光源) 204
16.3 常用物理引擎組件 205
16.3.1 Rigidbody(剛體組件) 206
16.3.2 Collider(碰撞器組件) 207
第17章 Unity腳本程序基礎 209
17.1 什么是腳本程序 209
17.2 Unity腳本編輯器 210
17.3 Unity腳本的創(chuàng)建與編輯 211
17.3.1 Script(腳本)創(chuàng)建 211
17.3.2 編輯腳本程序 212
17.3.3 常用事件函數(shù) 214
17.3.4 游戲對象和組件訪問 215
第18章 Unity GUI圖形用戶界面 218
18.1 UGUI的基本介紹 218
18.2 UGUI的創(chuàng)建和基本操作 219
18.3 UGUI實例演示 220
18.3.1 GUI之Button和Text 221
18.3.2 GUI之Toggle應用 222
18.3.3 GUI的Image和Scrollbar應用 224
18.3.4 通過Button調用其他場景 225
18.3.5 Slider與游戲對象 226
18.4 打包與發(fā)布 227
第19章 Mecanim動畫系統(tǒng) 229
19.1 Mecanim動畫系統(tǒng)及其優(yōu)勢 229
19.2 Mecanim工作流程 230
19.3 人形角色動畫講解 230
第20章 游戲開發(fā)實例——奔跑的輪胎 239
參考文獻 261