Cocos2d-x實戰:C++卷

《Cocos2d-x實戰:C++卷》是一本關東升編制,由清華大學出版社在2014年出版的書籍。本書系統論述了Cocos2dx遊戲開發理論與實踐。全書內容涵蓋了Cocos2dx的核心類、瓦片地圖、物理引擎、音樂音效、數據持久化、網路通信、數據交換格式、記憶體管理、性能最佳化、平台移植、程式代碼管理、三大套用商店發布產品等。

圖書簡介

本書共29章,按內容結構可分為六篇:

第一篇開發基礎,即第2章~第8章,內容包括Cocos2dx簡介、環境搭建、字元串、標籤、選單、精靈、場景、層、動作、特效、動畫和Cocos2dx用戶事件。

第二篇開發進階,即第9章~第12章,內容包括遊戲音樂與音效、粒子系統、瓦片地圖和物理引擎。

第三篇數據與網路,即第13章~第17章,內容包括Cocos2dx中使用的數據容器類、數據持久化、數據交換格式、基於HTTP網路通信和基於Node.js的Socket.IO網路通信。

第四篇設計與最佳化,即第18章~第20章,內容包括Cocos2dx中的常用設計模式、Cocos2dx中的記憶體管理和性能最佳化。

第五篇平台移植,即第21章~第23章,內容包括從Win 32到Android平台的移植、從Win 32到Windows Phone 8平台的移植和從Win 32到iOS平台的移植。

第六篇開發實戰,即第24章~第29章,內容包括使用Git管理程式代碼和多個項目實戰——迷失航線手機遊戲項目開發、為迷失航線遊戲添加廣告、發布放到Google play套用商店、發布放到Windows Phone套用商店和發布放到蘋果App Store。

圖書目錄

第一篇開 發 基 礎

第1章準備開始

1.1本書學習路線圖

1.2使用實例代碼

第2章Cocos2dx簡介與環境搭建

2.1移動平台遊戲引擎簡介

2.2Cocos2d家譜

2.3Cocos2dx設計目標

2.4在Windows平台下開始開發Cocos2dx遊戲

2.4.1使用Visual Studio開發工具

2.4.2下載和使用Cocos2dx案例

2.4.3生成API文檔

本章小結

第3章Hello Cocos2dx

3.1第一個Cocos2dx遊戲

3.1.1創建工程

3.1.2工程檔案結構

3.1.3代碼解釋

3.2Cocos2dx核心概念

3.2.1導演

3.2.2場景

3.2.3層

3.2.4精靈

3.2.5選單

3.3Node與Node層級架構

3.3.1Node中重要的操作

3.3.2Node中重要的屬性

3.3.3遊戲循環與調度

3.4Cocos2dx坐標系

3.4.1UI坐標

3.4.2OpenGL坐標

3.4.3世界坐標和模型坐標

3.5Win32平台下設定螢幕

本章小結

第4章字元串、標籤和選單

4.1Cocos2dx中的字元串

4.1.1使用const char*和std∷string

4.1.2使用cocos2d∷__String

4.1.3Win32平台下中文亂碼問題

4.2使用標籤

4.2.1LabelTTF

4.2.2LabelAtlas

4.2.3LabelBMFont

4.2.4Cocos2dx 3.x標籤類Label

4.2.5標籤中文亂碼問題

4.3使用選單

4.3.1文本選單

4.3.2精靈選單和圖片選單

4.3.3開關選單

本章小結

第5章精靈

5.1Sprite精靈類

5.1.1創建Sprite精靈對象

5.1.2實例: 使用紋理對象創建Sprite對象

5.2精靈的性能最佳化

5.2.1使用紋理圖集

5.2.2使用精靈幀快取

本章小結

第6章場景與層

6.1場景與層的關係

6.2場景切換

6.2.1場景切換相關函式

6.2.2場景過渡動畫

6.3場景的生命周期

6.3.1生命周期函式

6.3.2多場景切換生命周期

本章小結

第7章動作、特效和動畫

7.1動作

7.1.1瞬時動作

7.1.2間隔動作

7.1.3組合動作

7.1.4動作速度控制

7.1.5函式調用

7.2特效

7.2.1格線動作

7.2.2實例: 特效演示

7.3動畫

7.3.1幀動畫

7.3.2實例: 幀動畫使用

本章小結

第8章Cocos2dx用戶事件

8.1事件處理機制

8.1.1事件分發器

8.1.2觸摸事件

8.1.3實例: 單點觸摸事件

8.1.4實例: 使用Lambda表達式

8.1.5鍵盤事件

8.1.6滑鼠事件

8.2在層中進行事件處理

8.2.1觸摸事件

8.2.2實例: 單點觸摸事件

8.3加速度計與加速度事件

8.3.1加速度計

8.3.2使用事件分發器

8.3.3使用層加速度計事件

8.3.4實例: 運動的小球

本章小結

第二篇開 發 進 階

第9章遊戲背景音樂與音效

9.1Cocos2dx中的音頻檔案

9.1.1音頻檔案簡介

9.1.2Cocos2dx跨平台音頻支持

9.2使用CocosDenshion引擎

9.2.1音頻檔案的預處理

9.2.2播放背景音樂

9.2.3停止播放背景音樂

9.2.4背景音樂播放暫停與繼續

9.3實例: 設定背景音樂與音效

9.3.1AppDelegate實現

9.3.2HelloWorld場景實現

9.3.3設定場景實現

本章小結

第10章粒子系統

10.1問題的提出

10.2粒子系統基本概念

10.2.1實例: 打火機

10.2.2粒子發射模式

10.2.3粒子系統屬性

10.3Cocos2dx內置粒子系統

10.3.1內置粒子系統

10.3.2實例: 內置粒子系統

10.4自定義粒子系統

10.4.1代碼創建

10.4.2plist檔案創建

本章小結

第11章瓦片地圖

11.1地圖性能問題

11.2Cocos2dx中瓦片地圖API

11.3實例: 忍者無敵

11.3.1設計地圖

11.3.2程式中載入地圖

11.3.3移動精靈

11.3.4檢測碰撞

11.3.5滾動地圖

本章小結

第12章物理引擎

12.1使用物理引擎

12.1.1物理引擎核心概念

12.1.2物理引擎與精靈關係

12.2Cocos2dx 3.x中物理引擎封裝

12.2.1Cocos2dx 3.x物理引擎API

12.2.2實例: HelloPhysicsWorld

12.2.3實例: 碰撞檢測

12.2.4實例: 使用關節

12.3Box2D引擎

12.3.1Box2D核心概念

12.3.2使用Box2D物理引擎的一般步驟

12.3.3Visual Studio 2012下Box2D開發環境設定

12.3.4實例: HelloBox2D

12.3.5實例: 碰撞檢測

12.3.6實例: 使用關節

本章小結

第三篇數據與網路

第13章Cocos2dx中使用的數據容器類

13.1Cocos2dx中兩大類——Ref和Value

13.1.1Cocos2dx根類Ref

13.1.2包裝類Value

13.2Ref列表容器

13.2.1Array容器

13.2.2實例: Array容器

13.2.3Vector<T>容器

13.2.4實例: Vector<T>容器

13.3Ref字典容器

13.3.1Dictionary容器

13.3.2實例: Dictionary容器

13.3.3Map<K,V>容器

13.3.4實例: Map<K,V>容器

13.4Value列表容器——ValueVector

13.4.1ValueVector常用API

13.4.2實例: 使用ValueVector容器

13.5Value字典容器——ValueMap和ValueMapIntKey

13.5.1ValueMap和ValueMapIntKey常用API

13.5.2實例: 使用ValueMap容器

本章小結

第14章數據持久化

14.1使用FileUtils訪問檔案

14.1.1Cocos2dx中的目錄

14.1.2實例: 檔案讀寫

14.1.3實例: 路徑搜尋

14.2持久化簡介

14.3UserDefault數據持久化

14.3.1UserDefaultAPI

14.3.2實例: 保存背景音樂和音效設定

14.4屬性列表數據持久化

14.4.1屬性列表簡介

14.4.2實例: MyNotes

14.4.3使用Dictionary讀寫屬性列表檔案

14.4.4使用ValueMap讀寫屬性列表檔案

14.4.5使用ValueVector讀取屬性列表檔案

14.5SQLite資料庫數據持久化

14.5.1SQLite資料庫簡介

14.5.2Visual Studio下SQLite資料庫開發環境設定

14.5.3實例: 重構MyNotes

14.5.4創建資料庫

14.5.5SQLite資料庫管理工具

14.5.6查詢數據

14.5.7修改數據

本章小結

第15章數據交換格式

15.1CSV數據交換格式

15.1.1文檔結構

15.1.2CSV格式解碼

15.2XML數據交換格式

15.2.1文檔結構

15.2.2SAX解析

15.2.3DOM解析

15.3JSON數據交換格式

15.3.1文檔結構

15.3.2JSON框架jsoncpp和rapidjson比較

15.3.3實例: rapidjson解碼

15.3.4實例: rapidjson編碼

本章小結

第16章基於HTTP的網路通信

16.1網路結構

16.1.1客戶端伺服器結構網路

16.1.2對等結構網路

16.2HTTP與HTTPS

16.3使用cURL開發客戶端

16.3.1cURL與libcurl庫

16.3.2Visual Studio下libcurl庫開發環境設定

16.3.3實例: 重構MyNotes

16.4使用HttpClient開發客戶端

16.4.1HttpClient API

16.4.2Visual Studio下HttpClient開發環境設定

16.4.3實例: 重構MyNotes

本章小結

第17章基於Node.js的Socket.IO網路通信

17.1Node.js簡介

17.1.1Node.js安裝

17.1.2Node.js測試

17.2使用Socket.IO

17.2.1Socket.IO伺服器端開發

17.2.2Cocos2dx的Socket.IO客戶端

17.3實例: Socket.IO重構MyNotes

17.3.1Socket.IO伺服器端開發

17.3.2Node.js訪問SQLite資料庫

17.3.3Cocos2dx的Socket.IO客戶端開發

本章小結

第四篇設計與最佳化

第18章Cocos2dx中常用的設計模式

18.1單例設計模式

18.1.1問題提出

18.1.2實現原理

18.1.3套用案例

18.2委託設計模式

18.2.1問題提出

18.2.2實現原理

18.2.3套用案例

18.3觀察者設計模式與通知機制

18.3.1問題提出

18.3.2實現原理

18.3.3通知機制

本章小結

第19章Cocos2dx中的記憶體管理

19.1C++記憶體管理

19.1.1記憶體分配區域

19.1.2動態記憶體分配

19.2Ref記憶體管理

19.2.1記憶體引用計數

19.2.2自動釋放池

19.2.3Ref記憶體管理規則

19.3Ref記憶體管理設計模式

19.3.1使用靜態構造函式

19.3.2使用訪問器

19.4其他類型記憶體管理

19.4.1Value記憶體管理

19.4.2Vector<T>和Map<K,V>記憶體管理

本章小結

第20章性能最佳化

20.1工具

20.1.1使用Xcode中Instruments工具

20.1.2使用Windows任務管理器

20.1.3使Visual Studio記憶體泄漏檢測工具Visual Leak Detector

20.1.4左下角的文字是什麼

20.2使用SpriteBatchNode批次渲染

20.3合理使用快取

20.3.1場景與資源

20.3.2快取創建和清除時機

20.4圖片與紋理最佳化

20.4.1選擇圖片格式

20.4.2拼圖

20.4.3紋理像素格式

20.4.4紋理快取異步載入

20.4.5背景圖片最佳化

20.5聲音最佳化

20.5.1聲音格式最佳化

20.5.2聲音預處理與清除

20.6多執行緒並發訪問

20.6.1std∷thread多執行緒技術

20.6.2異步預處理聲音

20.7SQLite資料庫最佳化

20.7.1表結構最佳化

20.7.2查詢最佳化

20.7.3插入(或刪除)最佳化

20.8數據交換格式最佳化

本章小結

第五篇平 台 移 植

第21章從Win32到Android平台的移植

21.1搭建交叉編譯和打包環境

21.1.1安裝Android SDK

21.1.2管理Android SDK

21.1.3管理Android開發模擬器

21.1.4安裝Android NDK

21.1.5設定環境變數

21.2交叉編譯、打包和運行

21.2.1使用cocos命令行工具

21.2.2Android.mk編譯檔案

21.2.3使用Eclipse工具

21.3移植問題匯總

21.3.1中文亂碼問題

21.3.2SQLite3資料庫移植問題

21.3.3JSON框架rapidjson移植問題

21.3.4libcurl庫移植問題

21.3.5libNetwork庫移植問題

21.3.6橫屏與豎屏設定問題

本章小結

第22章從Win32到Windows Phone 8平台的移植

22.1Windows Phone 8開發環境搭建

22.1.1安裝Windows Phone SDK 8.0

22.1.2安裝Visual Studio Express 2012 for Windows Phone 8

22.2Cocos2dx 3.x的Windows Phone 8工程

22.2.1生成工程

22.2.2運行工程

22.2.3調試工程

22.3移植問題匯總

22.3.1中文亂碼問題

22.3.2SQLite3資料庫移植問題

22.3.3JSON框架rapidjson移植問題

22.3.4libcurl庫移植問題

22.3.5libNetwork庫移植問題

22.3.6橫屏與豎屏設定問題

本章小結

第23章從Win32到iOS平台的移植

23.1iOS開發環境搭建

23.1.1Xcode安裝和卸載

23.1.2Xcode操作界面

23.2從Visual Studio工程到Xcode工程

23.2.1添加源檔案

23.2.2添加資源檔案

23.2.3Xcode中編譯並運行

23.3移植問題匯總

23.3.1中文亂碼問題

23.3.2SQLite3資料庫移植問題

23.3.3JSON框架rapidjson移植問題

23.3.4libcurl庫移植問題

23.3.5聲音移植問題

23.3.6使用PVR紋理格式

23.3.7橫屏與豎屏設定問題

23.4多解析度螢幕適配

23.4.1問題的提出

23.4.2Cocos2dx螢幕適配

23.4.3解析度策略

23.4.4紋理圖集資源適配

23.4.5瓦片地圖資源適配

本章小結

第六篇開 發 實 踐

第24章使用Git管理程式代碼版本

24.1代碼版本管理工具——Git

24.1.1版本控制歷史

24.1.2術語和基本概念

24.1.3Git環境配置

24.1.4Git常用命令

24.2代碼託管服務——GitHub

24.2.1創建和配置GitHub賬號

24.2.2創建代碼庫

24.2.3刪除代碼庫

24.2.4派生代碼庫

24.2.5GitHub協同開發

24.3實例: Cocos2dx遊戲項目協同開發

24.3.1提交到GitHub代碼庫

24.3.2克隆GitHub代碼庫

24.3.3重新獲得GitHub代碼庫

本章小結

第25章Cocos2dx敏捷開發項目實戰——迷失航線手機遊戲

25.1迷失航線遊戲分析與設計

25.1.1迷失航線故事背景

25.1.2需求分析

25.1.3原型設計

25.1.4遊戲腳本

25.2任務1: 遊戲工程的創建與初始化

25.2.1疊代1.1: 創建工程

25.2.2疊代1.2: 多解析度支持

25.2.3疊代1.3: 通用類與基類維護

25.2.4疊代1.4: 發布到GitHub

25.3任務2: 創建Loading場景

25.3.1疊代2.1: 添加場景和層

25.3.2疊代2.2: Loading動畫

25.3.3疊代2.3: 異步載入紋理快取

25.3.4疊代2.4: 異步預處理聲音

25.4任務3: 創建Home場景

25.4.1疊代3.1: 添加場景和層

25.4.2疊代3.2: 添加選單

25.5任務4: 創建設定場景

25.6任務5: 創建幫助場景

25.7任務6: 遊戲場景實現

25.7.1疊代6.1: 創建敵人精靈

25.7.2疊代6.2: 創建玩家飛機精靈

25.7.3疊代6.3: 創建炮彈精靈

25.7.4疊代6.4: 初始化遊戲場景

25.7.5疊代6.5: 遊戲場景選單實現

25.7.6疊代6.6: 玩家飛機發射炮彈

25.7.7疊代6.7: 炮彈與敵人的碰撞檢測

25.7.8疊代6.8: 玩家飛機與敵人的碰撞檢測

25.7.9疊代6.9: 玩家飛機生命值顯示

25.7.10疊代6.10: 顯示玩家得分情況

25.8任務7: 遊戲結束場景

本章小結

第26章為迷失航線遊戲添加廣告

26.1使用谷歌AdMob廣告

26.1.1註冊AdMob賬號

26.1.2管理AdMob廣告

26.1.3AdMob廣告類型

26.1.4下載谷歌AdMob Ads SDK

26.2為迷失航線遊戲Android平台添加AdMob廣告

26.2.1Cocos2dx引擎Android平台下AdMob開發環境搭建

26.2.2編寫AdMob相關代碼

26.2.3交叉編譯與打包運行

26.3為迷失航線遊戲Windows Phone 8平台添加AdMob廣告

26.3.1Cocos2dx引擎Windows Phone 8平台下AdMob開發

環境搭建

26.3.2編寫AdMob相關代碼

26.4為迷失航線遊戲iOS平台添加AdMob廣告

26.4.1Cocos2dx引擎iOS平台下AdMob開發環境搭建

26.4.2編寫AdMob相關代碼

本章小結

第27章把迷失航線遊戲發布到Google Play套用商店

27.1谷歌Android套用商店Google Play

27.2Android設備測試

27.3還有“最後一公里”

27.3.1添加圖示

27.3.2應用程式打包

27.4發布產品

27.4.1上傳APK

27.4.2填寫商品詳細信息

27.4.3添加定價和發布範圍

本章小結

第28章把迷失航線遊戲發布到Windows Phone套用商店

28.1微軟Windows Phone套用商店

28.2Windows Phone 8設備測試

28.2.1播放音頻時程式崩潰問題

28.2.2螢幕解析度寬度和高度相反問題

28.3還有“最後一公里”

28.3.1使用套用商店測試套件完成“最後一公里”

28.3.2測試應用程式包XAP

28.3.3修改應用程式的基本屬性

28.3.4配置圖示

28.3.5套用商店磁貼和螢幕快照

28.3.6修改UI相關描述信息

28.3.7修改打包信息

28.4發布產品

28.4.1填寫套用信息

28.4.2上傳並描述您的程式包

本章小結

第29章把迷失航線遊戲發布到蘋果App Store套用商店

29.1蘋果的App Store

29.2iOS設備測試

29.2.1創建開發者證書

29.2.2設備註冊

29.2.3創建App ID

29.2.4創建配置概要檔案

29.2.5設備上運行

29.3還有“最後一公里”

29.3.1添加圖示

29.3.2添加啟動界面

29.3.3修改發布產品屬性

29.3.4為發布進行編譯

29.3.5套用打包

29.4發布產品

29.4.1創建套用及基本信息

29.4.2套用定價信息

29.4.3基本信息輸入

29.4.4上傳套用前準備

29.4.5上傳套用

29.5常見審核不通過的原因

29.5.1功能問題

29.5.2用戶界面問題

29.5.3商業問題

29.5.4不當內容

29.5.5其他問題

本章小結

相關詞條

相關搜尋

熱門詞條

聯絡我們