內容簡介
本書系統論述了Cocos2dx遊戲編程和開發技術,內容涵蓋Cocos2dx中核心類、數據結構、瓦片地圖、物理引擎、Audio引擎、記憶體管理等知識。全書分為17章,各章內容為: 本書約定、Cocos2dx環境搭建、Cocos2dx引擎、遊戲中的文字、Cocos2dx中的數據結構、選單、精靈、場景與層、動作和動畫、用戶事件、Audio引擎、粒子系統、瓦片地圖、物理引擎、記憶體管理、Cocos2dx多解析度螢幕適配和Cocos2dx敏捷開發項目實戰——迷失航線手機遊戲。 本書適合作為普通高校計算機、動漫設計、數字媒體等相關專業的遊戲開發課程的教材,也適合作為手機遊戲開發培訓機構的培訓教材及廣大手機遊戲開發者的自學參考用書。
作者簡介
趙志榮資深技術講師,移動開發技術顧問。擁有多年的Androjd和iPhone開發經驗,曾參與大型網路遊戲《神農訣》的iOS和Android客戶端開發,iPhone手機充值套用系統等多款Android、iPhone和iPad套用軟體。
著有《iPhone與iPad開發實戰》《And roid開發案例驅動教程》《Android網路遊戲開發實戰》等圖書,並錄製出版了《And roid實訓l項目視頻教程》。曾為銀河、CSTP、安博和萬博等機構提供培訓l,為華中科技大學、西安交通大學、中南大學、長春大學和吉林化工大學等多所院校提供高校實訓l.為中國移動、深圳施愛德等公司提供企業內訓l.
關東升國內著名iOS/COCOS技術作家,iOS技術顧問,Cocos*有價值專家(CVP),智捷課堂首席培訓l專家。
擔任51CTO社區iOS技術顧問,精通iOS、Android、WindOWS及HTML5等移動開發技術。曾先後主持大型網路遊戲《神農訣》的客戶端開發、農產品追溯系統的客戶端開發、酒店預訂系統的客戶端開發、金融系統的客戶端開發。擅長移動平台的套用和遊戲類項目開發,在AppStore上發布數款遊戲和套用軟體。長期為中國移動研究院、方正科技、大唐電信、中國石油、中國工商銀行、南方航空、惠普、東軟、NTT等單位提供技術諮詢及員工培訓。著有多部移動開發暢銷書:
《iOS開發指南》《Swift開發指南》《iOS網路編程與雲端套用最佳實踐》《iOS感測器套用開發最佳實踐》《iOS圖形圖像、動畫和多媒體編程技術最佳實踐》
《iPhone與iPad開發實戰》《品味移動設計》《互動設計的藝術》《Cocos2d.x實戰:C++卷》《Cocos2d一×實戰:JS卷》《Cocos2d.x實戰:Lua卷》《Cocos2d.×實戰:工具卷》等。
圖書目錄
叢書序3
序5
前言7
學習說明9
第1章本書約定
1.1使用實例代碼
1.2圖示的約定
1.2.1圖中的箭頭
1.2.2圖中的手勢
1.2.3圖中的圈框
1.3書中的UML圖
1.3.1類圖
1.3.2時序圖
第2章Cocos2dx環境搭建
2.1下載Cocos2dx
2.2搭建環境
2.2.1基本工具安裝
2.2.2設定環境變數
2.3開發Cocos2dx遊戲的IDE工具
2.3.1使用Visual Studio開發工具
2.3.2使用Xcode開發工具
本章小結
第3章Cocos2dx引擎
3.1Cocos2d家譜
3.2Cocos2dx設計目標
3.3個Cocos2dx遊戲
3.3.1創建工程
3.3.2Visual Studio工程檔案結構
3.3.3Xcode工程檔案結構
3.3.4代碼解釋
3.3.5Win32平台下設定螢幕
3.3.6工程中添加資源檔案
3.4Cocos2dx核心概念
3.4.1導演
3.4.2場景
3.4.3層
3.5Node與Node層級架構
3.5.1Node中的重要操作
3.5.2Node中的重要屬性
3.5.3遊戲循環與調度
3.6Cocos2dx坐標系
3.6.1UI坐標
3.6.2OpenGL坐標
3.6.3世界坐標和模型坐標
本章小結
第4章遊戲中的文字
4.1Cocos2dx中的字元串
4.1.1使用const char*和std::string
4.1.2使用cocos2d::String
4.1.3Win32平台下的中文亂碼問題
4.2使用標籤
4.2.1使用Label類
4.2.2標籤中文無法正常顯示的問題
4.3點陣圖字型製作
4.3.1Glyph Designer工具
4.3.2使用Glyph Designer製作點陣圖字型
本章小結
第5章Cocos2dx中的數據結構
5.1Cocos2dx中兩大類——Ref和Value
5.1.1Cocos2dx根類——Ref
5.1.2包裝類Value
5.2Ref列表數據結構
5.2.1Array數據結構
5.2.2實例: Array數據結構
5.2.3Vector 數據結構
5.2.4實例: Vector數據結構
5.3Ref字典數據結構
5.3.1Dictionary數據結構
5.3.2實例: Dictionary數據結構
5.3.3Map 數據結構
5.3.4實例: Map 數據結構
5.4Value列表數據結構——ValueVector
5.4.1ValueVector常用API
5.4.2實例: 使用ValueVector數據結構
5.5Value字典數據結構——ValueMap和ValueMapIntKey
5.5.1ValueMap和ValueMapIntKey常用API
5.5.2實例: 使用ValueMap數據結構
本章小結
第6章選單
6.1選單相關類
6.2文本選單
6.3精靈選單和圖片選單
6.4開關選單
本章小結
第7章精靈
7.1Sprite精靈類
7.1.1創建Sprite精靈對象
7.1.2實例: 使用紋理對象創建Sprite對象
7.2精靈的性能最佳化
7.2.1使用紋理圖集
7.2.2使用精靈幀快取
7.3紋理圖集製作
7.3.1TexturePacker工具
7.3.2使用TexturePacker製作紋理圖集
本章小結
第8章場景與層
8.1場景與層的關係
8.2場景切換
8.2.1場景切換相關函式
8.2.2場景過渡動畫
8.3場景的生命周期
8.3.1生命周期函式
8.3.2多場景切換生命周期
本章小結
第9章動作和動畫
9.1基本動作
9.1.1瞬時動作
9.1.2間隔動作
9.1.3組合動作
9.1.4動作速度控制
9.1.5函式調用
9.2特效
9.2.1格線動作
9.2.2實例: 特效演示
9.3動畫
9.3.1幀動畫
9.3.2實例: 幀動畫使用
本章小結
第10章用戶事件
10.1事件處理機制
10.1.1事件分發器
10.1.2觸摸事件
10.1.3實例: 單點觸摸事件
10.1.4實例: 使用Lambda表達式
10.1.5鍵盤事件
10.1.6滑鼠事件
10.2在層中進行事件處理
10.2.1觸摸事件
10.2.2實例: 單點觸摸事件
10.3加速度計與加速度事件
10.3.1加速度計
10.3.2使用事件分發器
10.3.3使用層加速度計事件
10.3.4實例: 運動的小球
本章小結
第11章Audio引擎
11.1Cocos2dx中音頻檔案
11.1.1音頻檔案介紹
11.1.2Cocos2dx跨平台音頻支持
11.2使用Audio引擎
11.2.1音頻檔案的預處理
11.2.2播放背景音樂
11.2.3停止播放背景音樂
11.2.4背景音樂播放暫停與繼續
11.3實例: 設定背景音樂與音效
11.3.1AppDelegate實現
11.3.2HelloWorld場景實現
11.3.3設定場景實現
本章小結
第12章粒子系統
12.1問題的提出
12.2粒子系統基本概念
12.2.1實例: 打火機
12.2.2粒子發射模式
12.2.3粒子系統屬性
12.3Cocos2dx內置粒子系統
12.3.1內置粒子系統
12.3.2實例: 內置粒子系統
12.4自定義粒子系統
12.4.1代碼創建
12.4.2plist檔案創建
12.5粒子系統設計工具Particle Designer
12.5.1粒子設定面板
12.5.2使用分享案例
12.5.3粒子的輸出
本章小結
第13章瓦片地圖
13.1地圖性能問題
13.2Cocos2dx中瓦片地圖API
13.3使用Tiled地圖編輯器
13.3.1新建地圖
13.3.2導入瓦片集
13.3.3創建層
13.3.4在普通層上繪製地圖
13.3.5在對象層上添加對象
13.4實例: 忍者無敵
13.4.1設計地圖
13.4.2程式中載入地圖
13.4.3移動精靈
13.4.4檢測碰撞
13.4.5滾動地圖
本章小結
第14章物理引擎
14.1使用物理引擎
14.1.1物理引擎核心概念
14.1.2物理引擎與精靈關係
14.2Cocos2dx 3.x中物理引擎封裝
14.2.1Cocos2dx 3.x物理引擎API
14.2.2實例: HelloPhysicsWorld
14.2.3實例: 接觸與碰撞檢測
14.2.4實例: 使用關節
本章小結
第15章記憶體管理
15.1C++記憶體管理
15.1.1記憶體分配區域
15.1.2動態記憶體分配
15.2Ref記憶體管理
15.2.1記憶體引用計數
15.2.2自動釋放池
15.2.3Ref記憶體管理規則
15.3Ref記憶體管理設計模式
15.3.1使用靜態構造函式
15.3.2使用訪問器
15.4其他類型記憶體管理
15.4.1Value記憶體管理
15.4.2Vector 和Map 記憶體管理
本章小結
第16章Cocos2dx多解析度螢幕適配
16.1螢幕適配問題的提出
16.2Cocos2dx螢幕適配
16.2.1三種解析度
16.2.2解析度策略
16.2.3紋理圖集資源適配
16.2.4瓦片地圖資源適配
本章小結
第17章Cocos2dx敏捷開發項目實戰——迷失航線手機遊戲
17.1迷失航線遊戲分析與設計
17.1.1迷失航線故事背景
17.1.2需求分析
17.1.3原型設計
17.1.4遊戲腳本
17.2任務1: 遊戲工程的創建與初始化
17.2.1疊代1.1: 創建工程
17.2.2疊代1.2: 多解析度支持
17.2.3疊代1.3: 通用類與基類維護
17.3任務2: 創建Loading場景
17.3.1疊代2.1: 添加場景和層
17.3.2疊代2.2: Loading動畫
17.3.3疊代2.3: 異步載入紋理快取
17.3.4疊代2.4: 異步預處理聲音
17.4任務3: 創建Home場景
17.4.1疊代3.1: 添加場景和層
17.4.2疊代3.2: 添加選單
17.5任務4: 創建設定場景
17.6任務5: 創建幫助場景
17.7任務6: 遊戲場景實現
17.7.1疊代6.1: 創建敵人精靈
17.7.2疊代6.2: 創建玩家飛機精靈
17.7.3疊代6.3: 創建炮彈精靈
17.7.4疊代6.4: 初始化遊戲場景
17.7.5疊代6.5: 遊戲場景選單實現
17.7.6疊代6.6: 玩家飛機發射炮彈
17.7.7疊代6.7: 炮彈與敵人的碰撞檢測
17.7.8疊代6.8: 玩家飛機與敵人的碰撞檢測
17.7.9疊代6.9: 玩家飛機生命值顯示
17.7.10疊代6.10: 顯示玩家得分情況
17.8任務7: 遊戲結束場景
本章小結