第一部分 引擎基礎
第1章 HelloCocos2d—x
1.1 引擎簡介
1.2 搭建開發環境
1.3 HelloWorld
1.4 HelloWorld分析
1.5 測試樣例簡介
1.6 小結
第2章 在游戲開始之前
2.1 基本概念
2.1.1 場景與流程控制
2.1.2 層
2.1.3 精靈
2.1.4 節點與渲染樹
2.1.5 動作與動畫
2.2 Cocos2d—x代碼風格
2.2.1 命名空間與類名稱
2.2.2 構造函數與初始化
2.2.3 選擇器
2.2.4 屬性
2.2.5 單例
2.3 C++中的Cocos2d—x內存管理
2.3.1 復雜的內存管理
2.3.2 現有的智能內存管理技術
2.3.3 Cocos2d—x的內存管理機制
2.3.4 工廠方法
2.3.5 關于對象傳值
2.3.6 釋放:release()還是autorelease()?
2.3.7 容器
2.3.8 相關輔助宏
2.3.9 Cocos2d—x內存管理原則
2.4 生命周期分析
2.5 小結
第3章 游戲的基本元素
3.1 CCDirector:大總管
3.2 CCScene:場景
3.3 CCLayer:層
3.4 CCSprite:精靈
3.4.1 紋理
3.4.2 創建精靈
3.4.3 設置精靈的屬性
3.4.4 向層中添加精靈
3.4.5 常用成員
3.5 CCNode與坐標系
3.5.1 坐標系與繪圖屬性
3.5.2 節點的組織
3.5.3 定時器事件
3.5.4 其他事件
3.6 Cocos2d—x內置的常用層
3.7 Cocos2d—x調度原理
3.7.1 游戲主循環
3.7.2 定時調度器
3.8 小結
第4章 動作
4.1 基本概念
4.2 瞬時動作
4.3 持續性動作
4.3.1 位置變化動作
4.3.2 屬性變化動作
4.3.3 視覺特效動作
4.3.4 控制動作
4.4 復合動作
4.5 變速動作
4.6 使魚動起來
4.7 創建自定義動作
4.7.1 一點簡單的物理知識
4.7.2 創建自定義動作
4.8 讓動作更平滑流暢
4.9 Cocos2d—x動作原理
4.9.1 動作類的結構
4.9.2 動作的更新
4.9.3 CCActionManager的工作原理
4.10 小結
第5章 動畫與場景特效
5.1 動畫
5.1.1 概述
5.1.2 使用動畫
5.2 場景特效
5.3 小結
第6章 音樂與音效
6.1 使用音效引擎
6.2 支持格式
6.3 播放音樂與音效
6.3.1 預加載
6.3.2 播放與停止
6.3.3 暫停與恢復播放
6.3.4 其他成員
6.4 小結
第7章 用戶輸入
7.1 觸摸輸入
7.1.1 使用CCLayer響應觸摸事件
7.1.2 兩種Cocos2d—x觸摸事件
7.2 觸摸分發器原理
7.3 觸摸中的陷阱
7.4 使用觸摸事件
7.4.1 使炮臺動起來
7.4.2 識別簡單的手勢
7.5 加速度計
7.6 文字輸入
7.7 小結
第二部分 引擎進階
第8章 粒子效果
8.1 Cocos2d—x中的粒子系統
8.2 粒子效果編輯器
8.2.1 界面介紹
8.2.2 制作火焰特效
8.3 小結
第9章 大型地圖
9.1 瓦片地圖
9.2 編輯器
9.2.1 TiledMapEditor簡介
9.2.2 創建水底世界
9.3 導入游戲
9.4 實現層次感
9.5 預定義屬性
9.6 小結
第10章 Cocos2d—x繪圖原理及優化
10.1 OpenGL基礎
10.1.1 OpenGL簡介
10.1.2 繪圖
10.1.3 矩陣與變換
10.2 Cocos2d—x繪圖原理
10.2.1 精靈的繪制
10.2.2 渲染樹的繪制
10.2.3 坐標變換
10.3 TexturePacker與優化
10.3.1 繪圖瓶頸
10.3.2 碎圖壓縮與精靈框幀
10.3.3 批量渲染
10.3.4 色彩深度優化
10.4 小結
第11章 OpenGL繪圖技巧
11.1 自定義繪圖
11.2 遮罩層
11.3 數據交流
11.4 可編程管線
11.4.1 可編程著色器
11.4.2 CCGLProgram
11.4.3 變量傳遞
11.5 水紋效果
11.5.1 著色器程序
11.5.2 ShaderNode類
11.5.3 uniform變量準備
11.5.4 繪制
11.5.5 添加到場景
11.6 CCGrid3D
11.7 再議效率
11.8 小結
第12章 物理引擎
12.1 新的超級武器
12.2 Box2D引擎簡介
12.3 接入Box2D
12.4 更新狀態
12.5 調試繪圖
12.6 碰撞檢測
12.7 彈射
12.8 精確碰撞
12.9 小結
第三部分 游戲開發進階
第13章 數據持久化
13.1 CCUserDefault
13.2 格式化存儲
13.3 本地文件存儲
13.4 XML與JSON
13.5 加密與解密
13.6 SQLite
13.7 小結
第14章 網絡
14.1 網絡傳輸架構
14.2 CURL
14.3 簡單傳輸
14.4 非阻塞傳輸
14.5 用戶記錄
14.6 多人對戰與同步問題
14.6.1 時間同步
14.6.2 魚群同步
14.7 校驗
14.8 小結
第15章 緩存與池
15.1 移動設備昂貴的CPU與內存
15.2 緩存機制:預加載與重復使用
15.3 Cocos2d—x中的緩存
15.3.1 CCTextureCache
15.3.2 CCSpriteFrameCache
15.3.3 CCAnimationCache
15.4 對象池機制:可回收與重復使用
15.5 對象池實現
15.6 落實到工廠方法
15.7 一個簡單的性能測試
15.8 使用時機
15.9 小結
第16章 并發編程
16.1 單線程的尷尬
16.2 pthread
16.3 線程安全
16.4 線程間任務安排
16.5 并發編程輔助
16.6 小結
第四部分 多平臺
第17章 多平臺下的Cocos2d
17.1 Windows8
17.2 WindowsPhone平臺
17.3 Cocos2d—HTML5
17.4 移植
17.5 小結
第18章 可視化開發
18.1 CocosBuilder可視化開發
18.2 使用CocosBuilder創建場景
18.3 在Cocos2d—x項目中使用場景
18.4 小結
第19章 Cocos2d—HTML5
19.1 概述
19.2 開發流程
19.2.1 開發環境介紹
19.2.2 搭建開發環境
19.2.3 開始開發
19.3 代碼安全
19.4 小結
第20章 移植
20.1 命名原則
20.1.1 類名稱
20.1.2 類函數
20.1.3 屬性
20.1.4 選擇器
20.1.5 全局變量、函數與宏
20.2 跨語言移植
20.2.1 第一階段:代碼移植
20.2.2 第二階段:消除平臺差異
20.2.3 第三階段:優化
20.3 小結
第五部分 實戰篇
第21章 實戰演練——開發自己的《捕魚達人》
21.1 開發前的準備
21.1.1 視圖
21.1.2 模型
21.1.3 控制器
21.2 開始開發
21.2.1 第一輪迭代
21.2.2 第二輪迭代
21.2.3 第三輪迭代