前言
“Cocos2dx實戰”系列圖書第1版出版後,得到業界一致好評,隨著Cocos2dx版本的變化,很多API有了較大變化,很多讀者希望升級Cocos2dx實戰系列圖書。
經過幾個月努力,我們終於在2016年7月完成初稿,幾個月來我們智捷iOS課堂團隊夜以繼日,我幾乎推掉一切社交活動,推掉很多企業邀請講課的機會,每天工作12小時,不敢有任何鬆懈和徘徊,只做一件事情——編寫此書。書中每一個文字、每一幅圖片、每一個實例都是精心製作。
圖書簡介
本書是介紹Cocos2dxLua遊戲編程和開發技術的書籍。書中介紹了使用Cocos2dxLua中的核心類、瓦片地圖、物理引擎、音樂音效、Cocos2dxGUI控制項、Cocos2dx中的3D特性、數據持久化、網路通信、性能最佳化、多平台移植、程式代碼管理、兩大套用商店發布產品。
全書分為6篇:基礎篇、進階篇、數據與網路篇、最佳化篇、多平台移植篇和實戰篇。
基礎篇包括第1~9章,內容涵蓋了Lua語言基礎、Cocos2dxLua介紹、環境搭建、標籤、選單、精靈、場景、層、動作、特效、動畫和用戶事件。
進階篇包括第10~15章,內容涵蓋了遊戲音樂與音效、粒子系統、瓦片地圖、物理引擎、Cocos2dxGUI控制項和Cocos2dx中的3D特性。
數據與網路篇包括第16~18章,內容涵蓋了數據持久化、基於HTTP網路通信和Node.js與WebSocket網路通信。
最佳化篇包括第19章性能最佳化。
多平台移植篇包括第20和第21章,分別是移植到Android平台和移植到iOS平台。
實戰篇包括第22~25章,分別是使用Git管理程式代碼、項目實戰:迷失航線
圖書目錄
第1章準備開始
1.1本書學習路線圖
1.2使用實例代碼
第一篇基礎篇
第2章Lua語言基礎
2.1Lua開發環境搭建
2.1.1安裝LDT工具
2.1.2HelloLua實例測試
2.2標識符和保留字
2.2.1標識符
2.2.2保留字
2.3常量和變數
2.3.1常量
2.3.2變數
2.3.3命名規範
2.4注釋
2.5Lua數據類型
2.5.1數據類型
2.5.2type函式
2.5.3數據類型轉換
2.6運算符
2.6.1算術運算符
2.6.2關係運算符
2.6.3邏輯運算符
2.6.4運算優先權
2.7控制語句
2.7.1分支語句
2.7.2循環語句
2.7.3跳轉語句
2.8table類型
2.8.1字典
2.8.2數組
2.9字元串類型
2.9.1字元串截取
2.9.2字元串轉換
2.9.3字元串查詢
2.9.4字元串格式化
2.10函式
2.10.1使用函式
2.10.2變數作用域
2.10.3多重返回值
2.11閉包函式
2.11.1嵌套函式
2.11.2返回函式
2.11.3使用閉包表達式
2.12Lua中的面向對象
2.12.1Lua中的對象
2.12.2類的實現
本章小結
第3章Cocos2dx Lua API與環境搭建
3.1移動平台遊戲引擎介紹
3.2Cocos2d家譜
3.3Cocos2dx設計目標
3.4搭建Cocos2dx Lua API開發環境
3.4.1安裝Visual Studio開發工具
3.4.2下載和使用Cocos2dx Lua API官方案例
3.4.3配置Cocos2dx環境
3.4.4使用API文檔
本章小結
第4章Hello Cocos2dx
4.1第一個Cocos2dx Lua API遊戲
4.1.1創建工程
4.1.2工程檔案結構
4.1.3重構HelloLua工程
4.1.4運行HelloLua工程
4.1.5調試HelloLua工程
4.2Cocos2dx核心概念
4.2.1導演
4.2.2場景
4.2.3層
4.3Node與Node層級架構
4.3.1Node中重要的操作
4.3.2Node中重要的屬性
4.3.3遊戲循環與調度
4.4Cocos2dx坐標系
4.4.1UI坐標
4.4.2OpenGL坐標
4.4.3世界坐標和模型坐標
本章小結
第5章標籤和選單
5.1遊戲中的文字
5.2使用標籤
5.2.1Label類
5.2.2實例: 使用系統字型和TTF字型
5.2.3實例: 使用點陣圖字型
5.2.4LabelAtlas類
5.3使用選單
5.3.1文本選單
5.3.2精靈選單和圖片選單
5.3.3開關選單
本章小結
第6章精靈
6.1Sprite精靈類
6.1.1創建Sprite精靈對象
6.1.2實例: 使用紋理對象創建Sprite對象
6.2精靈的性能最佳化
6.2.1使用紋理圖集
6.2.2使用精靈幀快取
本章小結
第7章場景與層
7.1場景與層的關係
7.2場景切換
7.2.1場景切換相關函式
7.2.2場景過渡動畫
7.3場景的生命周期
7.3.1生命周期函式
7.3.2多場景切換生命周期
本章小結
第8章動作、特效和動畫
8.1動作
8.1.1瞬時動作
8.1.2間隔動作
8.1.3組合動作
8.1.4動作速度控制
8.1.5函式調用
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.2.3實例: 運動的小球
本章小結
第二篇進階篇
第10章遊戲背景音樂與音效
10.1Cocos2dx Lua API中音頻檔案
10.1.1音頻檔案介紹
10.1.2Cocos2dx跨平台音頻支持
10.2使用AudioEngine引擎
10.2.1音頻檔案的預處理
10.2.2播放背景音樂
10.2.3停止播放背景音樂
10.3實例: 設定背景音樂與音效
10.3.1GameScene場景實現
10.3.2SettingScene場景實現
本章小結
第11章粒子系統
11.1問題的提出
11.2粒子系統基本概念
11.2.1實例: 打火機
11.2.2粒子發射模式
11.2.3粒子系統屬性
11.3內置粒子系統
11.3.1內置粒子系統
11.3.2實例: 內置粒子系統
11.4自定義粒子系統
11.4.1代碼創建
11.4.2plist檔案創建
本章小結
第12章瓦片地圖
12.1地圖性能問題
12.2瓦片地圖API
12.3實例: 忍者無敵
12.3.1設計地圖
12.3.2程式中載入地圖
12.3.3移動精靈
12.3.4檢測碰撞
12.3.5滾動地圖
本章小結
第13章物理引擎
13.1使用物理引擎
13.1.1物理引擎核心概念
13.1.2物理引擎與精靈關係
13.2Cocos2dx中物理引擎
13.2.1Cocos2dx物理引擎Lua API
13.2.2實例: HelloPhysicsWorld
13.2.3實例: 接觸與碰撞檢測
13.2.4實例: 使用關節
本章小結
第14章Cocos2dx GUI控制項
14.1按鈕
14.2ImageView
14.3文本控制項
14.3.1Text
14.3.2TextBMFont
14.3.3RichText
14.4RadioButton和RadioButtonGroup
14.5CheckBox
14.6LoadingBar
14.7滑塊控制項
本章小結
第15章Cocos2dx中的3D特性
15.1一些3D概念
15.1.1格線和模型
15.1.2相機
15.1.3投影
15.2使用3D精靈
15.2.1創建Sprite3D對象
15.2.2實例: 使用模型和紋理Sprite3D對象
15.33D模型檔案格式
15.4使用相機
15.4.1創建和設定Camera對象
15.4.2實例: 使用Camera對象
15.53D粒子系統
15.5.1創建PUParticleSystem3D對象
15.5.2實例: 創建Particle Universe 3D粒子
本章小結
第三篇數據與網路篇
第16章檔案訪問操作和數據持久化
16.1使用FileUtils訪問檔案
16.1.1Cocos2dx Lua API中的目錄
16.1.2實例: 讀取檔案
16.1.3實例: 路徑搜尋
16.2持久化概述
16.3UserDefault數據持久化
16.3.1UserDefault API
16.3.2實例: 保存背景音樂和音效設定
16.4屬性列表數據持久化
16.4.1屬性列表概述
16.4.2實例: 訪問根為字典結構的屬性列表檔案
16.4.3實例: 訪問根為列表結構的屬性列表檔案
本章小結
第17章基於HTTP網路通信
17.1網路結構
17.1.1客戶端伺服器結構網路
17.1.2點對點結構網路
17.2HTTP與HTTPS協定
17.3使用XMLHttpRequest對象開發客戶端
17.3.1使用XMLHttpRequest對象
17.3.2實例: MyNotes
17.4數據交換格式
17.5JSON數據交換格式
17.5.1文檔結構
17.5.2JSON解碼與編碼
17.5.3實例: 完善MyNotes
本章小結
本章小結
第四篇最佳化篇
第19章性能最佳化
19.1合理使用快取
19.1.1場景與資源
19.1.2快取創建和清除時機
19.2圖片與紋理最佳化
19.2.1選擇圖片格式
19.2.2拼圖
19.2.3紋理像素格式
19.2.4紋理快取異步載入
19.2.5背景圖片最佳化
19.3聲音最佳化
19.3.1聲音格式最佳化
19.3.2聲音預處理與清除
本章小結
第五篇多平台移植篇
第20章移植到Android平台
20.1搭建交叉編譯和打包環境
20.1.1Android SDK安裝
20.1.2管理Android SDK
20.1.3管理Android開發模擬器
20.1.4Android NDK安裝
20.1.5設定環境變數
20.2交叉編譯、打包和運行
20.2.1使用cocos命令行工具
20.2.2Android.mk編譯檔案
20.3移植問題匯總
20.3.1Lua檔案編譯問題
20.3.2橫屏與豎屏設定問題
本章小結
第21章移植到iOS平台
21.1iOS開發環境搭建
21.1.1Xcode安裝和卸載
21.1.2Xcode操作界面
21.2編譯與運行
21.3移植問題匯總
21.3.1iOS平台聲音移植問題
21.3.2使用PVR紋理格式
21.3.3橫屏與豎屏設定問題
21.4多解析度螢幕適配
21.4.1問題的提出
21.4.2Cocos2dx Lua API螢幕適配
21.4.3解析度策略
21.4.4紋理圖集資源適配
21.4.5瓦片地圖資源適配
本章小結
第六篇實戰篇
第22章使用Git管理程式代碼版本
22.1代碼版本管理工具——Git
22.1.1版本控制歷史
22.1.2術語和基本概念
22.1.3Git環境配置
22.1.4Git常用命令
22.2代碼託管服務——GitHub
22.2.1創建和配置GitHub賬號
22.2.2創建代碼庫
22.2.3刪除代碼庫
22.2.4派生代碼庫
22.2.5GitHub協同開發
22.3實例: Cocos2dx遊戲項目協同開發
22.3.1提交到GitHub代碼庫
22.3.2克隆GitHub代碼庫
22.3.3重新獲得GitHub代碼庫
本章小結
第23章Cocos2dx Lua API敏捷開發項目實戰——迷失航線手機遊戲
23.1迷失航線遊戲分析與設計
23.1.1迷失航線故事背景
23.1.2需求分析
23.1.3原型設計
23.1.4遊戲腳本
23.2任務1: 遊戲工程的創建與初始化
23.2.1疊代1.1: 創建工程
23.2.2疊代1.2: 添加資源檔案
23.2.3疊代1.3: 添加常量檔案SystemConst.lua
23.2.4疊代1.4: 多解析度支持
23.2.5疊代1.5: 發布到GitHub
23.3任務2: 創建Loading場景
23.3.1疊代2.1: 添加場景和層
23.3.2疊代2.2: Loading動畫
23.3.3疊代2.3: 異步載入紋理快取
23.4任務3: 創建Home場景
23.4.1疊代3.1: 添加場景和層
23.4.2疊代3.2: 添加選單
23.5任務4: 創建設定場景
23.6任務5: 創建幫助場景
23.7任務6: 遊戲場景實現
23.7.10疊代6.10: 顯示玩家得分情況
23.8任務7: 遊戲結束場景
本章小結
24.2“最後一公里”
24.2.1Lua檔案編譯
24.2.2添加圖示
24.2.3生成數字簽名檔案
24.2.4應用程式打包
24.3發布產品
24.3.1上傳APK
24.3.2填寫商品詳細信息
24.3.3定價和發布範圍
本章小結
第25章把迷失航線遊戲發布到蘋果App Store套用商店
25.2“最後一公里”
25.2.1添加圖示
25.2.2添加啟動界面
25.2.3修改發布產品屬性
25.3iOS設備測試
25.3.1Xcode設定
25.3.2設備設定
25.4為發布進行編譯
25.4.1創建開發者證書
25.4.3創建描述檔案
25.4.4發布編譯
25.5發布上架
25.5.1創建套用
25.5.2套用定價
25.5.3基本信息輸入
25.5.4上傳套用
25.5.5提交審核
25.6常見審核通不過的原因
25.6.1功能問題
25.6.2用戶界面問題
25.6.3商業問題
25.6.4不當內容
25.6.5其他問題
本章小結
作者介紹
關東升:國內知名iOS技術作家,iOS技術顧問,高級培訓講師,移動開發專家。擔任51CTO社區iOS技術顧問,精通iOS、Android、Windows Phone及HTML5等移動開發技術。曾先後主持開發大型網路遊戲《神農訣》的iOS和Android客戶端開發,國家農產品追溯系統的iPad客戶端開發,酒店預訂系統的iOS客戶端開發,金融系統的iOS、Windows Phone 及Android客戶端開發。在App Store上發布數款遊戲和套用軟體,擅長移動平台的套用和遊戲類項目開發。長期為中國移動研究院、雲南移動、東軟、方正科技、大唐電信、中石油、深圳康拓普、上海財富168、天津港務局等企事業單位授課。著有《iOS實戰:入門與提高卷(Swift版)》《iOS實戰:感測器卷(Swift版)》《iOS實戰:圖形圖像、動畫和多媒體卷(Swift版)》《iOS開發指南——從零基礎到App Store上架》《互動設計的藝術——iOS 7擬物化到扁平化革命》《Cocos2d-x實戰:C++卷(第2版)》《Cocos2d-x實戰:Lua卷(第2版)》《Cocos2d-x實戰:JS卷——Cocos2d-JS開發(第2版)》《Cocos2d-x實戰:工具卷(第2版)》等專業圖書。