Cocos2d-x實戰:Lua卷(第2版)

《Cocos2d-x實戰:Lua卷(第2版)》是於2017年2月清華大學出版社出版的一本圖書,作者是關東升

前言

“Cocos2dx實戰”系列圖書第1版出版後,得到業界一致好評,隨著Cocos2dx版本的變化,很多API有了較大變化,很多讀者希望升級Cocos2dx實戰系列圖書。

經過幾個月努力,我們終於在2016年7月完成初稿,幾個月來我們智捷iOS課堂團隊夜以繼日,我幾乎推掉一切社交活動,推掉很多企業邀請講課的機會,每天工作12小時,不敢有任何鬆懈和徘徊,只做一件事情——編寫此書。書中每一個文字、每一幅圖片、每一個實例都是精心製作。

圖書簡介

本書是介紹Cocos2dxLua遊戲編程和開發技術的書籍。書中介紹了使用Cocos2dxLua中的核心類、瓦片地圖、物理引擎、音樂音效、Cocos2dxGUI控制項、Cocos2dx中的3D特性、數據持久化、網路通信、性能最佳化、多平台移植、程式代碼管理、兩大套用商店發布產品。

全書分為6篇:基礎篇、進階篇、數據與網路篇、最佳化篇、多平台移植篇和實戰篇。

基礎篇包括第1~9章,內容涵蓋了Lua語言基礎、Cocos2dxLua介紹、環境搭建、標籤、選單、精靈、場景、層、動作、特效、動畫和用戶事件。

進階篇包括第10~15章,內容涵蓋了遊戲音樂與音效、粒子系統、瓦片地圖、物理引擎、Cocos2dxGUI控制項和Cocos2dx中的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章Cocos2dx Lua API與環境搭建

3.1移動平台遊戲引擎介紹

3.2Cocos2d家譜

3.3Cocos2dx設計目標

3.4搭建Cocos2dx Lua API開發環境

3.4.1安裝Visual Studio開發工具

3.4.2下載和使用Cocos2dx Lua API官方案例

3.4.3配置Cocos2dx環境

3.4.4使用API文檔

本章小結

第4章Hello Cocos2dx

4.1第一個Cocos2dx Lua API遊戲

4.1.1創建工程

4.1.2工程檔案結構

4.1.3重構HelloLua工程

4.1.4運行HelloLua工程

4.1.5調試HelloLua工程

4.2Cocos2dx核心概念

4.2.1導演

4.2.2場景

4.2.3層

4.3Node與Node層級架構

4.3.1Node中重要的操作

4.3.2Node中重要的屬性

4.3.3遊戲循環與調度

4.4Cocos2dx坐標系

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.1Cocos2dx Lua API中音頻檔案

10.1.1音頻檔案介紹

10.1.2Cocos2dx跨平台音頻支持

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.2Cocos2dx中物理引擎

13.2.1Cocos2dx物理引擎Lua API

13.2.2實例: HelloPhysicsWorld

13.2.3實例: 接觸與碰撞檢測

13.2.4實例: 使用關節

本章小結

第14章Cocos2dx 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章Cocos2dx中的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.1Cocos2dx 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.2Cocos2dx 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實例: Cocos2dx遊戲項目協同開發

22.3.1提交到GitHub代碼庫

22.3.2克隆GitHub代碼庫

22.3.3重新獲得GitHub代碼庫

本章小結

第23章Cocos2dx 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版)》等專業圖書。

相關詞條

熱門詞條

聯絡我們