第1章 Cocos2d-x基礎知識 1
1.1 引擎組織結構 1
1.2 從2.x到3.x的變化 3
1.2.1 類名變化 3
1.2.2 單件類變化 4
1.2.3 宏定義與結構的變化 4
1.2.4 回調函數變化 5
1.2.5 事件響應機制的變化 6
1.3 Cocos2d-x中的C++ 11知識 7
1.3.1 Lambda表達式 7
1.3.2 bind函數 10
1.3.3 function函數 11
1.3.4 auto和nullptr 12
1.3.5 override和final 13
1.4 小結 13
第2章 基礎類 14
2.1 Director類 15
2.1.1 場景函數 15
2.1.2 視圖信息函數 16
2.1.3 管理器函數 17
2.1.4 控制函數 17
2.2 高級節(jié)點類 18
2.2.1 Node類 18
2.2.2 Scene類 24
2.2.3 Layer類 26
2.2.4 Sprite類 27
2.3 文字類 31
2.3.1 LabelTTF方式 32
2.3.2 LabelAtlas方式 32
2.3.3 LabelBMFont方式 33
2.4 菜單類 33
2.4.1 文字按鈕 34
2.4.2 圖片按鈕 35
2.4.3 切換按鈕 35
2.4.4 XJMenu按鈕 37
2.5 列表類 40
2.5.1 ScrollView類 40
2.5.2 TableView類 42
2.6 其他類 45
2.6.1 SpriteBatchNode類 45
2.6.2 DrawNode類 46
2.6.3 Scale9Sprite類 48
2.6.4 EditBox類 48
2.6.5 RenderTexture類 50
2.7 小結 51
第3章 動畫 52
3.1 ActionManager類 52
3.2 瞬時動畫 54
3.2.1 可見性動畫 54
3.2.2 翻轉動畫 54
3.2.3 回調動畫 55
3.2.4 Place動畫 55
3.2.5 RemoveSelf動畫 56
3.3 延時動畫 56
3.3.1 移動動畫 57
3.3.2 旋轉動畫 57
3.3.3 縮放動畫 58
3.3.4 扭曲動畫 58
3.3.5 跳躍動畫 59
3.3.6 淡入淡出動畫 59
3.3.7 Tint動畫 60
3.3.8 Blink動畫 61
3.3.9 Bezier動畫 61
3.3.10 DelayTime動畫 62
3.3.11 重復動畫 62
3.3.12 Sequence動畫 62
3.3.13 Spawn動畫 63
3.3.14 序列幀動畫 64
3.3.15 進度動畫 65
3.4 緩沖動畫 67
3.4.1 彈性動畫 69
3.4.2 跳躍動畫 69
3.4.3 指數動畫 70
3.4.4 Sine動畫 70
3.4.5 回震動畫 71
3.4.6 Ease動畫 71
3.5 Speed動畫 72
3.6 Follow動畫 73
3.7 ActionTimeline動畫 74
3.8 動畫特效 75
3.8.1 Grid3DAction動畫 75
3.8.2 TiledGrid3DAction動畫 78
3.9 小結 80
第4章 定時器與事件響應機制 81
4.1 定時器 81
4.1.1 Scheduler類 81
4.1.2 Node定時器 83
4.2 事件響應機制 85
4.2.1 EventDispatcher類 85
4.2.2 EventListener類 87
4.2.3 觸摸事件 88
4.2.4 鍵盤事件 89
4.2.5 鼠標事件 90
4.2.6 加速器事件 90
4.2.7 Event類 91
4.2.8 EventTouch類 91
4.2.9 EventKeyboard類 92
4.2.10 EventMouse類 93
4.2.11 EventAcceleration類 93
4.3 小結 94
第5章 粒子系統 95
5.1 普通粒子系統 95
5.1.1 粒子結構 96
5.1.2 ParticleSystem類 97
5.1.3 ParticleSystemQuad類 98
5.1.4 實例 99
5.1.5 粒子編輯器 101
5.2 3D粒子 102
5.2.1 ParticleSystem3D類 103
5.2.2 PUParticleSystem3D類 104
5.2.3 材質文件 105
5.2.4 粒子文件 105
5.2.5 粒子使用 106
5.3 小結 107
第6章 聲音 108
6.1 SimpleAudioEngine類 108
6.1.1 背景音樂 108
6.1.2 音效 109
6.2 AudioEngine類 110
6.3 小結 112
第7章 Cocos2d-x中的3D技術 113
7.1 模型 113
7.1.1 模型格式 113
7.1.2 Sprite3D類 116
7.1.3 動畫相關類 117
7.1.4 坐標系 118
7.2 模型掛接與換裝 119
7.2.1 掛接 119
7.2.2 換裝 121
7.3 相機 123
7.3.1 相機類 123
7.3.2 相機類型 124
7.3.3 遮罩 127
7.3.4 視錐體裁剪 128
7.3.5 自由相機 128
7.3.6 弧度相機 130
7.3.7 **人稱相機 132
7.3.8 第三人稱相機 132
7.4 光照 133
7.4.1 燈光基礎 133
7.4.2 環(huán)境光 134
7.4.3 方向光 136
7.4.4 點光源 136
7.4.5 聚光燈 137
7.5 碰撞檢測 138
7.5.1 2D包圍盒檢測 139
7.5.2 距離檢測 139
7.5.3 AABB檢測 139
7.5.4 OBB檢測 141
7.5.5 Ray檢測 141
7.6 Billboard 143
7.7 多線程資源加載 144
7.8 2D與3D混合 146
7.9 DrawNode3D類 147
7.10 展望 148
第8章 數學庫 149
8.1 向量 149
8.2 矩陣 153
8.2.1 矩陣的創(chuàng)建 155
8.2.2 向量和值的提取 156
8.2.3 零矩陣和單位矩陣 156
8.2.4 負矩陣 156
8.2.5 矩陣算術運算 157
8.2.6 平移、旋轉和縮放 158
8.2.7 矩陣轉置 159
8.2.8 方陣 159
8.2.9 逆矩陣 160
8.3 四元素 160
8.3.1 四元素的創(chuàng)建 160
8.3.2 零四元素和單位四元素 161
8.3.3 負四元素 161
8.3.4 四元素的模 161
8.3.5 四元素共軛 162
8.3.6 逆四元素 162
8.3.7 四元素點乘 162
8.3.8 四元素叉乘 162
8.3.9 線性插值 163
8.3.10 slerp插值 163
8.3.11 squad插值 164
8.3.12 四元素的運用 164
8.4 Size類 165
8.5 Rect類 165
8.6 小結 166
第9章 Shader編程 168
9.1 GLSL基礎 168
9.1.1 Hello World 168
9.1.2 數據類型 169
9.1.3 數組和結構 171
9.1.4 類型限定 172
9.1.5 參數限定 173
9.1.6 操作符 173
9.1.7 流程控制 174
9.1.8 函數 175
9.1.9 頂點著色 175
9.1.10 片段著色 176
9.1.11 內置變量 176
9.1.12 內置函數 176
9.2 Cocos2d-x對Shader的處理 178
9.2.1 GLProgram 179
9.2.2 GLProgramCache 180
9.2.3 GLProgramState 182
9.2.4 GLProgramStateCache 182
9.3 2D特效 183
9.3.1 水平翻轉 183
9.3.2 垂直翻轉 184
9.3.3 圖像變灰 185
9.3.4 圖像反色 185
9.3.5 圖像噪點 186
9.3.6 圖像模糊 187
9.3.7 馬賽克 188
9.3.8 浮雕效果 188
9.3.9 邊緣檢測 189
9.4 3D特效 190
9.4.1 環(huán)境光 191
9.4.2 散射光 192
9.4.3 鏡面光 194
9.4.4 霧 195
9.4.5 波光 197
9.4.6 UV動畫 200
9.4.7 偽陰影 201
9.4.8 卡通著色 203
9.4.9 模型輪廓 204
9.5 小結 210
第10章 HTTP編程 211
10.1 libcurl基礎知識 211
10.1.1 global函數 212
10.1.2 init和cleanup函數 212
10.1.3 setopt函數 212
10.1.4 表單函數 214
10.1.5 perform函數 217
10.2 pthread基礎知識 218
10.2.1 線程管理 218
10.2.2 互斥變量 221
10.2.3 條件變量 223
10.3 基