圖書內容
本書為“十二五”普通高等教育本科國家級規劃教材,著重介紹二維遊戲程式設計所需的基礎知識,包括遊戲圖像處理、二維遊戲場景繪製、遊戲互動界面設計、二維動畫合成、碰撞檢測與運動模擬、遊戲粒子系統、遊戲音效編程、遊戲中人工智慧、網路遊戲編程、遊戲腳本編程等,涵蓋了二維遊戲程式設計的主要方面。
全書共14章,強調理論與實踐結合,通過遊戲實例啟發性地說明遊戲編程的相關原理和方法,每個主要章節均配有相應的遊戲片段實例,最後一章通過一個完整的綜合實例貫穿了本書的主要知識點和遊戲開發要點。本書還有進階篇的配套教材。本書面向的讀者對象是那些已掌握基本的程式設計技能,並立志於從事計算機遊戲軟體開發的程式設計師和遊戲開發愛好者。
本書既可以作為數字媒體技術、計算機、軟體工程等專業的本科生(研究生)的教材,也可用於遊戲學院和各類遊戲編程人員培訓班的參考資料,對正在從事遊戲開發和製作的相關人員也具有重要的參考價值。
目 錄
第1章 遊戲開發簡介 001
1.1 什麼是遊戲 001
1.2 計算機遊戲的發展 003
1.3 計算機遊戲的分類 006
1.4 計算機遊戲開發的基本理念和
方法 011
1.5 遊戲開發的基本流程 012
1.6 遊戲開發的準則和“忠告” 014
1.7 遊戲編程人員的基本素質
要求 016
小結 017
習題1 017
第2章 計算機遊戲策劃簡介 018
2.1 計算機遊戲策劃的概念和
分類 018
2.2 計算機遊戲策劃人員應具備的
素質 019
2.3 計算機遊戲策劃基礎 020
2.3.1 遊戲規則 020
2.3.2 獎罰機制 021
2.3.3 遊戲資源 021
2.3.4 玩家技能 023
2.3.5 反饋機制 025
2.3.6 難度平衡 026
2.4 計算機遊戲的策劃與開發
團隊 028
小結 030
習題2 030
第3章 遊戲圖像處理 031
3.1 圖像概述 031
3.2 顏色混合和半透明效果 035
3.2.1 基本原理和步驟 035
3.2.2 Alpha融合技術 036
3.3 圖像操作 038
3.3.1 直方圖 038
3.3.2 幾何運算 039
3.3.3 圖像濾波運算元 040
3.3.4 形態運算元 042
3.4 圖像特效 044
小結 046
習題3 046
第4章 遊戲引擎概覽 047
4.1 遊戲引擎的提出 047
4.2 常用遊戲引擎 048
4.3 Cocos2d-x引擎介紹 052
4.3.1 Cocos2d-x的核心概念 052
4.3.2 Cocos2d-x中的坐標系 056
4.3.3 Cocos2d-x中的用戶互動回響 057
4.3.4 Cocos2d-x的記憶體管理機制 058
4.3.5 Cocos2d-x中的新增的3D特性 060
4.4 Cocos2d-x開發環境配置 060
4.4.1 Windows下開發環境配置 060
4.4.2 Android開發環境配置 062
4.4.3 iOS下的開發環境配置 066
小結 066
習題4 067
第5章 二維遊戲場景繪製 068
5.1 遊戲場景的組織和管理 068
5.2 遊戲畫面背景 069
5.2.1 二維遊戲背景的類型 069
5.2.2 遊戲地圖的創建和顯示 070
5.2.3 磚塊地圖 073
5.2.4 磚塊地圖編輯器 074
5.2.5 Cocos2d-x中磚塊地圖的實現 076
5.3 文字與字型 078
5.3.1 字型編輯器 078
5.3.2 Cocos2d-x中的文本繪製 079
5.4 選單項 082
5.5 擴展控制項 086
5.5.1 滾動框 086
5.5.2 滑動條控制項 090
5.5.3 開關控制項 091
5.5.4 按鈕控制項 091
5.5.5 Scale9Sprite 092
5.6 遊戲場景繪製實例——英雄
快跑 093
小結 099
習題和實驗 099
第6章 遊戲互動界面設計 100
6.1 互動界面設計概述 100
6.2 遊戲的可玩性與互動界面 100
6.3 互動界面設計基礎 101
6.3.1 互動界面的色彩設計 101
6.3.2 互動界面的形式 102
6.4 遊戲軟體的互動界面設計 107
6.5 Cocos2d-x中的界面設計 108
6.5.1 Cocos2d-x中的UI編輯器 108
6.5.2 用戶界面編輯器的使用 108
6.5.3 在Cocos2d-x引擎中的套用 110
6.6 Cocos2d-x中的用戶互動 111
6.7 遊戲界面設計實例——貪
食豆 113
小結 117
習題和實驗 117
第7章 二維遊戲動畫合成 118
7.1 計算機動畫概述 118
7.2 常見計算機動畫技術 118
7.2.1 基本動畫技術 118
7.2.2 腳本驅動的動畫技術 119
7.2.3 骨骼動畫技術 120
7.2.4 常見動畫製作軟體及其檔案
格式 120
7.3 Cocos2d-x中的動作類 121
7.3.1 瞬時動作(ActionInstant) 121
7.3.2 延時動作(ActionInterval) 122
7.3.3 組合動作
(ActionAcombination) 123
7.3.4 速度的指定(speed) 124
7.3.5 跟隨動作(follow) 124
7.4 Cocos2d-x中的動畫 125
7.4.1 Cocos2d-x中與動畫相關的類 125
7.4.2 Cocos2d-x中的動畫編輯器 125
7.4.3 Cocos2d-x中動畫的實現 127
7.5 遊戲動畫實例——俠客行 128
小結 139
習題和實驗 139
第8章 碰撞檢測和運動模擬 140
8.1 碰撞檢測 140
8.2 物體遮擋關係 141
8.3 物體運動模擬 141
8.4 Cocos2d-x中的物理引擎 142
8.4.1 Box2D簡介 142
8.4.2 Box2D中的相關類 143
8.4.3 Box2D的使用 149
8.5 遊戲物理模擬實例 150
8.5.1 基於Box2D的遊戲實例 150
8.5.2 Cocos2d-x的物理引擎Physics的
套用 158
小結 159
習題和實驗 160
第9章 遊戲粒子系統 161
9.1 粒子系統概述 161
9.2 粒子效果 161
9.3 Cocos2d-x中的粒子系統 162
9.4 粒子的生命周期 163
9.5 粒子屬性 164
9.6 粒子編輯器 165
9.7 粒子系統實例—煙花瀑 169
小結 175
習題和實驗 175
第10章 遊戲音效編程 177
10.1 聲音基礎 177
10.2 常見的音效引擎 181
10.3 Cocos2d-x中的音樂和
音效 182
10.3.1 音樂和音效的預載入 182
10.3.2 播放和停止 183
10.3.3 暫停和恢復播放 185
10.3.4 其他成員 185
10.4 遊戲音效編程實例 186
小結 188
習題和實驗 188
第11章 遊戲中的人工智慧 189
11.1 遊戲AI概述 189
11.2 遊戲AI基本類型 190
11.3 常用的遊戲AI技術 190
11.3.1 有限狀態機 191
11.3.2 模糊邏輯 192
11.3.3 人工神經網路 192
11.3.4 遺傳算法 193
11.3.5 腳本語言 193
11.4 二維遊戲尋路與A*算法 194
11.4.1 遊戲尋路技術 194
11.4.2 A*算法及其實現 195
11.5 遊戲AI實例——迷宮尋寶 200
小結 205
習題和實驗 206
第12章 網路遊戲編程 207
12.1 網路遊戲的基本架構 207
12.2 網路遊戲通信協定 208
12.3 網路遊戲多執行緒編程 209
12.4 常見的遊戲開發網路框架 211
12.5 Cocos2d-x中的網路通信 211
12.5.1 HTTP網路通信 212
12.5.2 Socket網路通信 214
12.5.3 WebSocket網路通信 217
12.6 遊戲網路編程實例——網路
坦克大戰 218
12.6.1 準備工作 218
12.6.2 解析JSON 218
12.6.3 連線網路 220
12.6.4 遊戲邏輯實現 225
小結 227
習題和實驗 228
第13章 遊戲中的腳本編程 229
13.1 Lua簡介 229
13.2 Lua語言的語法 230
13.2.1 數值和類型 230
13.2.2 表達式 231
13.2.3 語句 232
13.2.4 函式 235
13.3 Lua程式與C++程式通信 236
13.3.1 C++代碼調用Lua函式 237
13.3.2 Lua代碼調用C++函式 238
13.4 Lua腳本在Cocos2d-x中的
套用 239
13.5 遊戲腳本編程實例——守衛
寶箱 239
小結 246
習題和實驗 246
第14章 計算機遊戲綜合實例 247
14.1 全局控制和管理 247
14.2 遊戲數據解析 250
14.2.1 CSV檔案解析 250
14.2.2 SQLite資料庫套用 253
14.3 場景繪製 262
14.3.1 地圖繪製 263
14.3.2 模型封裝和導入 267
14.4 界面設計 276
14.4.1 主界面構建 276
14.4.2 對話框設計 280
14.5 動畫效果 285
14.6 遊戲AI 287
小結 289
參考文獻 290