第一部分 引擎基礎
第1章 Hello Cocos2d-x 2
1.1 引擎簡介 2
1.2 搭建開發環境 3
1.3 Hello World 5
1.4 Hello World分析 6
1.5 測試樣例簡介 10
1.6 小結 11
第2章 在遊戲開始之前 12
2.1 基本概念 12
2.1.1 場景與流程控製 12
2.1.2 層 13
2.1.3 精靈 14
2.1.4 節點與渲染樹 14
2.1.5 動作與動畫 16
2.2 Cocos2d-x代碼風格 16
2.2.1 命名空間與類名稱 16
2.2.2 構造函數與初始化 17
2.2.3 選擇器 18
2.2.4 屬性 19
2.2.5 單例 20
2.3 C++中的Cocos2d-x內存管理 21
2.3.1 復雜的內存管理 21
2.3.2 現有的智能內存管理技術 21
2.3.3 Cocos2d-x的內存管理機製 22
2.3.4 工廠方法 25
2.3.5 關於對象傳值 26
2.3.6 釋放:release()還是autorelease()? 26
2.3.7 容器 27
2.3.8 相關輔助宏 28
2.3.9 Cocos2d-x內存管理原則 28
2.4 生命周期分析 29
2.5 小結 31
第3章 遊戲的基本元素 32
3.1 CCDirector:大總管 32
3.2 CCScene:場景 33
3.3 CCLayer:層 34
3.4 CCSprite:精靈 35
3.4.1 紋理 35
3.4.2 創建精靈 35
3.4.3 設置精靈的屬性 36
3.4.4 嚮層中添加精靈 36
3.4.5 常用成員 38
3.5 CCNode與坐標係 39
3.5.1 坐標係與繪圖屬性 40
3.5.2 節點的組織 43
3.5.3 定時器事件 44
3.5.4 其他事件 46
3.6 Cocos2d-x內置的常用層 46
3.7 Cocos2d-x調度原理 49
3.7.1 遊戲主循環 50
3.7.2 定時調度器 53
3.8 小結 58
第4章 動作 60
4.1 基本概念 60
4.2 瞬時動作 61
4.3 持續性動作 62
4.3.1 位置變化動作 63
4.3.2 屬性變化動作 64
4.3.3 視覺特效動作 65
4.3.4 控製動作 65
4.4 復閤動作 66
4.5 變速動作 68
4.6 使魚動起來 70
4.7 創建自定義動作 74
4.7.1 一點簡單的物理知識 74
4.7.2 創建自定義動作 75
4.8 讓動作更平滑流暢 77
4.9 Cocos2d-x動作原理 79
4.9.1 動作類的結構 79
4.9.2 動作的更新 80
4.9.3 CCActionManager的工作原理 81
4.10 小結 83
第5章 動畫與場景特效 84
5.1 動畫 84
5.1.1 概述 84
5.1.2 使用動畫 85
5.2 場景特效 86
5.3 小結 87
第6章 音樂與音效 88
6.1 使用音效引擎 88
6.2 支持格式 89
6.3 播放音樂與音效 89
6.3.1 預加載 89
6.3.2 播放與停止 90
6.3.3 暫停與恢復播放 90
6.3.4 其他成員 91
6.4 小結 92
第7章 用戶輸入 93
7.1 觸摸輸入 93
7.1.1 使用CCLayer響應觸摸事件 93
7.1.2 兩種Cocos2d-x觸摸事件 94
7.2 觸摸分發器原理 97
7.3 觸摸中的陷阱 100
7.4 使用觸摸事件 100
7.4.1 使炮颱動起來 100
7.4.2 識彆簡單的手勢 103
7.5 加速度計 105
7.6 文字輸入 107
7.7 小結 110
第二部分 引擎進階
第8章 粒子效果 114
8.1 Cocos2d-x中的粒子係統 114
8.2 粒子效果編輯器 117
8.2.1 界麵介紹 117
8.2.2 製作火焰特效 121
8.3 小結 124
第9章 大型地圖 125
9.1 瓦片地圖 125
9.2 編輯器 126
9.2.1 Tiled Map Editor簡介 126
9.2.2 創建水底世界 127
9.3 導入遊戲 131
9.4 實現層次感 132
9.5 預定義屬性 135
9.6 小結 135
第10章 Cocos2d-x繪圖原理及優化 136
10.1 OpenGL基礎 136
10.1.1 OpenGL簡介 136
10.1.2 繪圖 140
10.1.3 矩陣與變換 143
10.2 Cocos2d-x繪圖原理 145
10.2.1 精靈的繪製 145
10.2.2 渲染樹的繪製 147
10.2.3 坐標變換 150
10.3 TexturePacker與優化 152
10.3.1 繪圖瓶頸 152
10.3.2 碎圖壓縮與精靈框幀 153
10.3.3 批量渲染 154
10.3.4 色彩深度優化 156
10.4 小結 157
第11章 OpenGL繪圖技巧 159
11.1 自定義繪圖 159
11.2 遮罩層 161
11.3 數據交流 164
11.4 可編程管綫 168
11.4.1 可編程著色器 168
11.4.2 CCGLProgram 168
11.4.3 變量傳遞 169
11.5 水紋效果 170
11.5.1 著色器程序 171
11.5.2 ShaderNode類 172
11.5.3 uniform變量準備 174
11.5.4 繪製 175
11.5.5 添加到場景 176
11.6 CCGrid3D 177
11.7 再議效率 178
11.8 小結 179
第12章 物理引擎 180
12.1 新的超級武器 180
12.2 Box2D引擎簡介 181
12.3 接入Box2D 181
12.4 更新狀態 184
12.5 調試繪圖 186
12.6 碰撞檢測 187
12.7 彈射 189
12.8 精確碰撞 190
12.9 小結 191
第三部分 遊戲開發進階
第13章 數據持久化 194
13.1 CCUserDefault 194
13.2 格式化存儲 194
13.3 本地文件存儲 196
13.4 XML與JSON 196
13.5 加密與解密 200
13.6 SQLite 201
13.7 小結 205
第14章 網絡 206
14.1 網絡傳輸架構 206
14.2 CURL 206
14.3 簡單傳輸 207
14.4 非阻塞傳輸 209
14.5 用戶記錄 211
14.6 多人對戰與同步問題 211
14.6.1 時間同步 212
14.6.2 魚群同步 212
14.7 校驗 213
14.8 小結 213
第15章 緩存與池 215
15.1 移動設備昂貴的CPU與內存 215
15.2 緩存機製:預加載與重復使用 216
15.3 Cocos2d-x中的緩存 216
15.3.1 CCTextureCache 216
15.3.2 CCSpriteFrameCache 217
15.3.3 CCAnimationCache 217
15.4 對象池機製:可迴收與重復使用 218
15.5 對象池實現 218
15.6 落實到工廠方法 221
15.7 一個簡單的性能測試 222
15.8 使用時機 223
15.9 小結 224
第16章 並發編程 225
16.1 單綫程的尷尬 225
16.2 pthread 225
16.3 綫程安全 226
16.4 綫程間任務安排 227
16.5 並發編程輔助 228
16.6 小結 233
第四部分 多平颱
第17章 多平颱下的Cocos2d 236
17.1 Windows 8 236
17.2 Windows Phone平颱 237
17.3 Cocos2d-HTML5 237
17.4 移植 238
17.5 小結 238
第18章 可視化開發 239
18.1 CocosBuilder可視化開發 239
18.2 使用CocosBuilder創建場景 239
18.3 在Cocos2d-x項目中使用場景 241
18.4 小結 242
第19章 Cocos2d-HTML5 243
19.1 概述 243
19.2 開發流程 244
19.2.1 開發環境介紹 245
19.2.2 搭建開發環境 245
19.2.3 開始開發 249
19.3 代碼安全 255
19.4 小結 257
第20章 移植 258
20.1 命名原則 258
20.1.1 類名稱 258
20.1.2 類函數 259
20.1.3 屬性 259
20.1.4 選擇器 260
20.1.5 全局變量、函數與宏 260
20.2 跨語言移植 262
20.2.1 第一階段:代碼移植 262
20.2.2 第二階段:消除平颱差異 265
20.2.3 第三階段:優化 268
20.3 小結 269
第五部分 實戰篇
第21章 實戰演練——開發自己的《捕魚達人》 272
21.1 開發前的準備 273
21.1.1 視圖 273
21.1.2 模型 274
21.1.3 控製器 275
21.2 開始開發 275
21.2.1 第一輪迭代 275
21.2.2 第二輪迭代 289
21.2.3 第三輪迭代 293
附錄A 把遊戲部署到Android平颱 299
· · · · · · (
收起)