作者序
歡迎來到Cocos的開發世界。
Cocos2d-x自發佈第一個版本以來,歷經4年的成長,到如今使用者已遍佈全球,數不清的採用Cocos引擎開發的遊戲橫掃各個暢銷榜單。近兩年,手機遊戲企業在行動網際網路世界的崛起是有目共睹的。企業格局在變化,Cocos2d-x不改初衷,開放原始碼免費始終如一,便捷高效步步提升,跨平台特性也日益增強。我們的引擎團隊不斷地努力改進,盡可能降低遊戲開發的門檻,讓更多有想法、有創意的朋友,不管是專業還是非專業出身的開發者,都能著手去實現。
Cocos2d-x遊戲引擎的優勢在於「在一個平台下開發,多平台發佈」。至今,許多知名的開發團隊都已轉為使用Cocos2d-x開發遊戲了。以這樣為基礎的背景。本書使用Cocos2d-x的C++語言API,並包含了100多個完整的案例專案原始程式碼,讀者可到本書網站http://www.topteam.cc下載。
※ 勘誤與支援
網站http://www.cocoagame.net中建立了一個勘誤專區,及時地把書中的問題和勘誤回饋給讀者們。如果您在學習過程中發現了問題,可以在網上留言,也可以發送電子郵件到eorient@sina.com,我們會在第一時間回覆。
※ 本書程式碼
本書原作者為中國大陸籍,為求原始程式之完整,特將原書程式碼及繁體化之後的程式碼都放在本公司官網http://www.topteam.cc 上,讀者可下載執行。
在執行繁體中文程式碼時若出現錯誤訊息,可使用原書程式測試。
歡迎來到Cocos的開發世界。
Cocos2d-x自發佈第一個版本以來,歷經4年的成長,到如今使用者已遍佈全球,數不清的採用Cocos引擎開發的遊戲橫掃各個暢銷榜單。近兩年,手機遊戲企業在行動網際網路世界的崛起是有目共睹的。企業格局在變化,Cocos2d-x不改初衷,開放原始碼免費始終如一,便捷高效步步提升,跨平台特性也日益增強。我們的引擎團隊不斷地努力改進,盡可能降低遊戲開發的門檻,讓更多有想法、有創意的朋友,不管是專業還是非專業出身的開發者,都能著手去實現。
Cocos2d-x遊戲引擎的優勢在於「在一個平台下開發,多平台發佈」。...
目錄
PART 1 基礎篇
01 準備開始
1.1 本書學習路線
1.2 使用實例程式
02 Cocos2d-x介紹與環境架設
2.1 行動平台遊戲引擎介紹
2.2 Cocos2d家譜
2.3 Cocos2d-x設計目標
2.4 在Windows平台下開始開發Cocos2d-x遊戲
03 Hello Cocos2d-x
3.1 第一個Cocos2d-x遊戲
3.2 Cocos2d-x核心概念
3.3 Node與Node層級架構
3.4 Cocos2d-x座標系
3.5 Win32平台下設定螢幕
04 字串、標籤和選單
4.1 Cocos2d-x中的字串
4.2 使用標籤
4.3 使用選單
05 精靈
5.1 Sprite精靈類別
5.2 精靈的效能最佳化
06 場景與層
6.1 場景與層的關係
6.2 場景切換
6.3 場景的生命週期
07 動作、特效和動畫
7.1 動作
7.2 特效
7.3 動畫
08 Cocos2d-x使用者事件
8.1 事件處理機制
8.2 Mouse Down detected,
onMouseUp在層中進行事件處理
8.3 加速度計與加速度事件
PART 2 進階篇
09 遊戲背景音樂與音效
9.1 Cocos2d-x中音訊檔案
9.2 使用CocosDenshion引擎
9.3 實例:設定背景音樂與音效
10 粒子系統
10.1 問題的提出
10.2 粒子系統基本概念
10.3 Cocos2d-x內建粒子系統
10.4 自訂粒子系統
11 圖磚地圖
11.1 地圖效能問題
11.2 Cocos2d-x中圖磚地圖API
11.3 實例:忍者無敵
12 物理引擎
12.1 使用物理引擎
12.2 Cocos2d-x 3.0中物理引擎封裝
12.3 Box2D引擎
PART 3 資料與網路篇
13 Cocos2d-x中使用的資料容器類別
13.1 Cocos2d-x中兩大類——Ref 和Value
13.2 Ref列表容器
13.3 Ref字典容器
13.4 Value列表容器——
ValueVector
13.5 Value字典容器——ValueMap和ValueMapIntKey
14 檔案存取與資料持久化
14.1 使用FileUtils存取檔案
14.2 持久化概述
14.3 UserDefault資料持久化
14.4 屬性清單資料持久化
14.5 SQLite資料庫資料持久化
15 資料交換格式
15.1 CSV資料交換格式
15.2 XML資料交換格式
15.3 JSON資料交換格式
16 以HTTP為基礎的網路通訊
16.1 網路結構
16.2 HTTP與HTTPS協定
16.3 使用cURL開發用戶端
16.4 使用HttpClient開發用戶端
17 以Node.js為基礎的Socket.IO網路通訊
17.1 Node.js
17.2 使用Socket.IO
17.3 實例:Socket.IO重構MyNotes
PART 4 設計與最佳化篇
18 Cocos2d-x中的常用設計模式
18.1 單例設計模式
18.2 委派設計模式
18.3 觀察者設計模式與通知機制
19 Cocos2d-x中的記憶體管理
19.1 C++記憶體管理
19.2 Ref記憶體管理
19.3 Ref記憶體管理設計模式
19.4 其它類型記憶體管理
20 效能最佳化
20.1 工具
20.2 使用SpriteBatchNode批次繪製
20.3 合理使用快取
20.4 圖片與紋理最佳化
20.5 聲音最佳化
20.6 多執行緒平行處理存取
20.7 SQLite資料庫最佳化
20.8 資料交換格式最佳化
PART 5 平台移植篇
21 從Win32 到Android
21.1 架設交換編譯和包裝環境
21.2 交換編譯和包裝
21.3 移植問題整理
22 從Win32到Windows Phone 8
22.1 Windows Phone 8開發環境架設
22.2 Cocos2d-x 3.x的Windows
Phone 8專案
22.3 移植問題整理
23 從Win32到iOS
23.1 iOS開發環境架設
23.2 從Visual Studio專案到Xcode 專案
23.3 移植問題整理
23.4 多解析度螢幕轉換
PART 6 實戰篇
24 使用Git 管理程式碼版本
24.1 程式版本管理工具——Git
24.2 程式託管服務——GitHub
24.3 實例:Cocos2d-x遊戲專案協作開發
25 Cocos2d-x敏捷開發專案實戰——迷失航線手機遊戲
25.1 迷失航線遊戲分析與設計
25.2 工作1:遊戲專案的建立與初始化
25.3 工作2:建立Loading場景
25.4 工作3:建立Home場景
25.5 工作4:建立設定場景
25.6 工作5:建立說明場景
25.7 工作6:遊戲場景實現
25.8 工作7:遊戲結束場景
26 為迷失航線遊戲增加廣告
26.1 使用GoogleAdMob廣告
26.2 為迷失航線遊戲Android平台增加AdMob廣告
26.3 為迷失航線遊戲Windows Phone 8平台增加AdMob廣告
26.4 為迷失航線遊戲iOS平台增加AdMob 廣告
27 把迷失航線遊戲發佈到Google play市集
27.1 GoogleAndroid市集Google play
27.2 Android裝置測試
27.3 還有「最後一哩路」
27.4 發佈產品
28 把迷失航線遊戲發佈到Windows Phone市集
28.1 微軟Windows Phone市集
28.2 Windows Phone 8裝置測試
28.3 還有「最後一哩路」
28.4 發佈產品
29 把迷失航線遊戲發佈到蘋果App Store
29.1 蘋果的App Store
29.2 iOS裝置測試
29.3 還有「最後一哩路」
29.4 發佈產品
29.5 常見審核不通過的原因
PART 1 基礎篇
01 準備開始
1.1 本書學習路線
1.2 使用實例程式
02 Cocos2d-x介紹與環境架設
2.1 行動平台遊戲引擎介紹
2.2 Cocos2d家譜
2.3 Cocos2d-x設計目標
2.4 在Windows平台下開始開發Cocos2d-x遊戲
03 Hello Cocos2d-x
3.1 第一個Cocos2d-x遊戲
3.2 Cocos2d-x核心概念
3.3 Node與Node層級架構
3.4 Cocos2d-x座標系
3.5 Win32平台下設定螢幕
04 字串、標籤和選單
4.1 Cocos2d-x中的字串
4.2 使用標籤
4.3 使用選單
05 精靈
5.1 Sprite精靈類別
5.2 精靈的效能最佳化
06 場景與層
6.1 場景與層的關係
6.2 場...