《Cocos2d-x實戰:Lua捲》是著名移動開發專傢關東升傾力創作的“Cocos2d-x實戰”典藏大係之一!本書基於Cocos2d-x 3.2版本,係統論述Cocos2d-x之Lua開發的理論與實戰。全書近500頁,不僅係統梳理瞭Cocos2d-x開發的基本方法,並給齣瞭100多個小的示例及綜閤案例。是一本Cocos2d-x開發入門實踐指導百科全書。
推薦一:本書配閤《Cocos2d-x實戰:工具捲》學習。
推薦二:關東升老師錄製瞭400課時的Cocos教學視頻,讀者可以登錄“智捷課堂”在綫學習。
《Cocos2d-x實戰 Lua捲》是介紹Cocos2d-x Lua遊戲編程和開發技術的書籍,介紹瞭使用Cocos2d�瞲 Lua中核心類、瓦片地圖、物理引擎、音樂音效、數據持久化、網絡通信、性能優化、多平颱移植、程序代碼管理、兩大應用商店發布産品。全書分為六篇: 基礎篇、進階篇、數據與網絡篇、優化篇、跨平颱移植篇和實戰篇,共23章。基礎篇包括第1~8章,分彆是Cocos2d-x Lua介紹、環境搭建、標簽、菜單、精靈、場景、層、動作、特效、動畫和用戶事件。進階篇包括第9~12章,分彆是遊戲音樂與音效、粒子係統、瓦片地圖和物理引擎。數據與網絡篇包括第13~15章,分彆是數據持久化、基於HTTP的網絡通信、Node.js與WebSocket網絡通信。優化篇為第16章,主要介紹性能優化。跨平颱移植篇包括第17章和第18章,分彆是移植到Android平颱和移植到iOS平颱。實戰篇包括第19~23章,分彆是使用Git管理程序代碼、項目實戰——迷失航綫手機遊戲、為迷失航綫遊戲添加廣告、發布放到Google play應用商店和發布放到蘋果App Store。
關東升,國內知名iOS技術作傢,iOS技術顧問,高級培訓講師,移動開發專傢。擔任51CTO社區iOS技術顧問,精通iOS、Android和Windows Phone及HTML5等移動開發技術。曾先後主持開發大型網絡遊戲《神農訣》的iOS和Android客戶端開發,國傢農産品追溯係統的iPad客戶端開發,酒店預訂係統的iOS客戶端開發,金融係統的iOS、Windows Phone 及Android客戶端開發。在App Store上發布數款遊戲和應用軟件,擅長移動平颱的應用和遊戲類項目開發。長期為中國移動研究院、雲南移動、東軟、方正科技、大唐電信、中石油、深圳康拓普、上海財富168、天津港務局等企事業單位授課。
第一篇 基礎篇
第1章 準備開始
1.1 本書學習路綫圖
1.2 使用實例代碼
第2章 Lua語言基礎
2.1 環境搭建
2.1.1 Lua編輯工具
2.1.2 HelloLua實例測試
2.2 標識符和保留字
2.2.1 標識符
2.2.2 保留字
2.3 常量和變量
2.3.1 常量
2.3.2 變量
2.3.3 命名規範
2.4 注釋
2.5 Lua數據類型
2.5.1 數據類型
2.5.2 type函數
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.8 錶類型
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.12 Lua中的麵嚮對象
2.12.1 Lua中的對象
2.12.2 類的實現
本章小結
第3章 HelloCocos2d?xLua
3.1 移動平颱遊戲引擎介紹
3.2 Cocos2d遊戲引擎
3.2.1 Cocos2d遊戲引擎傢譜
3.2.2 Cocos2d?x引擎
3.2.3 JavaScript和Lua綁定
3.3 搭建Cocos2d?xLua開發環境
3.3.1 搭建CocosCodeIDE開發環境
3.3.2 下載和使用Cocos2d?xLua官方案例
3.4 第一個Cocos2d?xLua遊戲
3.4.1 創建工程
3.4.2 CocosCodeIDE中運行
3.4.3 工程文件結構
3.4.4 代碼解釋
3.5 重構HelloLua
3.6 Cocos2d?xLua核心概念
3.6.1 導演
3.6.2 場景
3.6.3 層
3.6.4 精靈
3.6.5 菜單
3.7 Node與Node層級架構
3.7.1 Node中重要的操作
3.7.2 Node中重要的屬性
3.7.3 遊戲循環與調度
3.8 Cocos2d?xLua坐標係
3.8.1 UI坐標
3.8.2 OpenGL坐標
3.8.3 世界坐標和模型坐標
本章小結
第4章 標簽和菜單
4.1 使用標簽
4.1.1 LabelTTF
4.1.2 LabelAtlas
4.1.3 LabelBMFont
4.1.4 Cocos2d?x3.x標簽類Label
4.2 使用菜單
4.2.1 文本菜單
4.2.2 精靈菜單和圖片菜單
4.2.3 開關菜單
本章小結
第5章 精靈
5.1 Sprite精靈類
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章 用戶事件
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.2.3 實例:運動的小球
本章小結
……
第二篇 進階篇
第三篇 數據與網絡篇
第四篇 優化篇
第五篇 平颱移植篇
第六篇 實戰篇
第3章Hello Cocos2d�瞲 Lua
在開始詳細介紹Cocos2d�瞲 Lua引擎的API之前,有必要先瞭解一下手機遊戲引擎有哪些和瞭解Cocos2d�瞲 Lua的前世今生。
然後從一個HelloLua入手,介紹Cocos2d�瞲 Lua的基本開發流程、Cocos2d�瞲 Lua生命周期以及Cocos2d�瞲 Lua核心知識體係。
3.1移動平颱遊戲引擎介紹
遊戲引擎是指一些已編寫好的遊戲程序模塊。遊戲引擎包含渲染引擎(即“渲染器”,包括二維圖像引擎和三維圖像引擎)、物理引擎、碰撞檢測係統、音效、腳本引擎、電腦動畫、人工智能、網絡引擎以及場景管理等子係統。
在目前移動平颱遊戲引擎中主要可以分為2D和3D引擎。2D引擎主要有Cocos2d�瞚phone、Cocos2d�瞲、Cocos2d�睯S、Corona SDK、Construct 2、WiEngine和Cyclone 2D,3D引擎主要有Unity 3D、Unreal Development Kit、ShiVa 3D和Marmalade。此外還有一些針對於HTML 5的遊戲引擎,如Cocos2d�瞙tml5、X�睠anvas和Sphinx等。
這些遊戲引擎各有韆鞦,但是目前得到市場普遍認可的2D引擎是Cocos2d�瞚phone、Cocos2d�瞲和Cocos2d�睯S,3D引擎是Unity 3D。
3.2Cocos2d遊戲引擎
Cocos2d�瞚phone、Cocos2d�瞲和Cocos2d�睯S是目前最流行的2D遊戲引擎。它們屬於同一傢族,具有相同的API。
3.2.1Cocos2d遊戲引擎傢譜
在介紹Cocos2d�瞲 Lua之前有必要先介紹一下Cocos2d的傢譜,如圖3��1所示是Cocos2d的傢譜。
圖3��1Cocos2d的傢譜
Cocos2d最早是由阿根廷的Ricardo和他的朋友使用Python開發的,後移植到iPhone平颱,使用的語言是Objective�睠。隨著在iPhone平颱取得瞭成功,Cocos2d引擎變得更加多元化,將對其中各個引擎介紹如下。
�r ShinyCocos: 使用Ruby對Cocos2d�瞚phone進行封裝,使用Ruby api開發。
�r CocosNet: 是在MonoTouch平颱上使用的Cocos2d引擎,采用.NET實現。
�r Cocos2d�瞐ndroid: 是為Android平颱使用的Cocos2d引擎,采用Java實現。
�r Cocos2d�瞐ndroid��1: 是為Android平颱使用的Cocos2d引擎,采用Java實現,由國內人員開發的。
�r Cocos2d�瞛avascript: 是采用Javascript腳本語言實現的Cocos2d引擎。
�r Cocos2d�瞲: 是采用C++實現的Cocos2d引擎,它是由Cocos2d�瞲團隊開發的分支項目。
�r Cocos2d�睯S: 是采用JavaScriptAPI的Cocos2d引擎,一方麵它可以綁定在Cocos2d�瞲上開發基於本地技術的遊戲; 另一方麵依托瀏覽器運行,開發基於Web的網頁遊戲。它也是由Cocos2d�瞲團隊開發的分支項目。
此外,曆史上Cocos2d還齣現過很多分支,隨著技術的發展這些逐漸消亡瞭,其中最有生命力的當屬Cocos2d�瞲和Cocos2d�睯S引擎瞭。
3.2.2Cocos2d�瞲引擎
Cocos2d�瞲設計目標如圖3��2所示。橫嚮能夠支持各種操作係統,桌麵係統包括Windows、Linux和Mac OS X,移動平颱包括iOS、Android、Windows Phone、Bada、BlackBerry和MeeGo等。縱嚮方麵嚮下能夠支持OpenGL ES1.1、OpenGL ES1.5和OpenGL ES2.0,以及DirectX11等技術,嚮上支持JavaScript和Lua腳本綁定。
圖3��2Cocos2d�瞲設計目標
簡單說Cocos2d�瞲設計目標是為瞭實現跨平颱,而不再為同一款遊戲在不同平颱發布而進行編譯瞭。而且Cocos2d�瞲為程序員考慮的更多,很多程序員可能對於C++不熟悉,針對這種情況可以使用JavaScript和LuaLua是一個小巧的腳本語言,是巴西裏約熱內盧天主教大學(Pontifical Catholic University of Rio de Janeiro)裏的一個研究小組(Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo)於1993年開發。——引自於百度百科http://baike.baidu.com/view/416116.htm?fr=wordsearch開發遊戲。
3.2.3JavaScript和Lua綁定
Cocos2d�瞲設計得非常巧妙,可以綁定JavaScript和Lua腳本語言,使得不熟悉C++的人員也能使用Cocos2d�瞲引擎開發遊戲,Cocos2d�瞲不使用C++語言的API,而是使用JavaScript和Lua語言API。Cocos2d�瞲綁定JavaScript和Lua腳本原理如圖3��3所示。
圖3��3Cocos2d�瞲綁定JavaScript和Lua腳本
從圖3��3可知,通過Cocos2d�瞲和Cocos2d�睯S引擎,程序員可以開發網頁遊戲和本地遊戲。圖中A綫路和B綫路都是給掌握JavaScript腳本的程序員準備的,通過A綫路,使用Cocos2d�睯S引擎開發基於HTML5的網頁遊戲。同樣的JavaScript代碼,也可以通過B綫路,使用js binding(js綁定)技術透過C++ API訪問Cocos2d�瞲引擎,開發本地遊戲。使得同樣的JavaScript代碼就可以實現在不同平颱下運行。
圖3��3中的C綫路是給熟悉C++的程序員準備的。通過C++ API訪問Cocos2d�瞲引擎,開發本地遊戲。
圖3��3中的D綫路是本書重點介紹的內容,是為熟悉Lua腳本的程序員準備的。使用Lua binding(Lua綁定)技術透過C++ API訪問Cocos2d�瞲引擎,開發本地遊戲,為統一概念,本書中Cocos2d�瞲 Lua綁定技術稱為Cocos2d�瞲 Lua。
通過Cocos2d�瞲和Cocos2d�睯S引擎Cocos2d�瞲團隊構建瞭自己的技術生態圈,通過這些引擎使得遊戲開發越來越簡單。
3.3搭建Cocos2d�瞲 Lua開發環境
使用Cocos2d�瞲 Lua開發遊戲,主要的程序代碼是Lua語言,因此,凡是能夠開發Lua語言工具都適用於Cocos2d�瞲 Lua遊戲開發。本書推薦Cocos Code IDE工具。
3.3.1搭建Cocos Code IDE開發環境
Cocos Code IDE是Cocos2d�瞲團隊開發的,用於開發Cocos2d�睯S和Cocos2d�瞲 Lua綁定的遊戲工具,它是基於EclipseEclipse是一個開放源代碼的、基於Java的可擴展開發平颱。就其本身而言,它隻是一個框架和一組服務,用於通過插件組件構建開發環境。幸運的是,Eclipse附帶瞭一個標準的插件集,包括Java開發工具(Java Development Kit,JDK)。——引自於百度百科http://baike.baidu.com/subview/23576/9374802.htm平颱的開發工具,Eclipse基於Java的要想運行Cocos Code IDE工具,需要安裝JDK或JRE,JDK是Java開發工具包,JRE是Java運行環境。
1. JDK
JDK的安裝和設置見2.1.1節。
2. Cocos Code IDE的下載和安裝
Cocos Code IDE的下載地址是http://www.cocos2d�瞲.org/download,在瀏覽器中的頁麵如圖3��4所示。選擇閤適的文件下載,目前包括瞭Mac OS X版本和Windows版本,注意Windows有32位和64位之分,還有安裝(Setup)版本和壓縮(Zip)版本之分。
圖3��4下載Cocos Code IDE
下載cocos�瞔ode�瞚de�瞱in64��1.0.0�瞨c1.zip解壓版本,解壓後找到Cocos Code IDE.exe文件,運行可以啓動Cocos Code IDE工具,在啓動過程中需要選擇Workspace目錄,如圖3��5所示,Workspace目錄是工程的管理目錄,選擇好之後單擊OK按鈕,如果該目錄不存在則重新創建。
圖3��5選擇Workspace
Cocos Code IDE的具體使用方法下麵章節再介紹。
3.3.2下載和使用Cocos2d�瞲 Lua官方案例
首先到Cocos2d�瞲官方網站下載Cocos2d�瞲開發包。Cocos2d�瞲3.2下載解壓後的目錄結構如圖3��6所示。
圖3��6Cocos2d�瞲 3.2開發包內容
如果要運行官方的案例可以進入到build目錄,build目錄中的內容如圖3��7所示,這裏包含瞭各個平颱編
圖3��7build目錄內容
譯和運行案例的工程等文件,其中cocos2d_tests.xcodeproj文件是Cocos2d�瞲案例的Xcode工程文件,cocos2d�瞱in32.vc2012.sln文件是Cocos2d�瞲案例Win32平颱下Visual Studio 2012解決方案文件,另外的cocos2d�瞱p8.vc2012.sln文件是Cocos2d�瞲案例Windows Phone 8平颱下Visual Studio 2012解決方案文件。
如果在Window下學習和開發,一般運行cocos2d�瞱in32.vc2012.sln解決方案就可以瞭。如果啓動cocos2d�瞱in32.vc2012.sln解決方案,進入如圖3��8所示的Visual Studio 2012界麵,其中的lua�瞭ests工程是Cocos2d�瞲官方提供的Cocos2d�瞲 Lua案例工程,需要選中lua�瞭ests工程,右擊選擇“設置啓動項目”,然後運行上方工具欄中的運行調試按鈕�#�運行lua�瞭ests工程。
圖3��8Cocos2d�瞲 Lua案例
首次運行編譯Cocos2d�瞲時間會長一些,運行起來之後會看到一個Windows的窗口(如圖3��9(a)所示),單擊其中的一個菜單項可以運行相應的示例(如圖3��9(b)所示)。
圖3��9運行案例
如果想查看lua�瞭ests源代碼,需要到
3.4第一個Cocos2d�瞲 Lua遊戲
編寫的第一個Cocos2d�瞲 Lua程序命名為HelloLua,從該工程開始學習其他的內容。
3.4.1創建工程
創建Cocos2d�瞲 Lua工程可以通過Cocos2d�瞲提供的命令工具Cocos實現,但這種方式不能與Cocos Code IDE集成開發工具很好地集成,不便於程序編寫和調試。由於Cocos Code IDE工具是Cocos2d�瞲開發的專門為Cocos2d�睯S和Cocos2d�瞲 Lua開發設計的,因此使用Cocos Code IDE工具創建Cocos2d�瞲 Lua工程很方便。
首先需要在Cocos Code IDE工具中先配置Lua框架,打開Cocos Code IDE工具,選擇菜單Window→Preferences,彈齣對話框如圖3��10所示,選擇Cocos→Lua在右邊的Lua Frameworks,選擇
圖3��10配置Lua框架
Lua框架配置不需要每次都進行,隻需要在最開始時配置,但創建工程的時候,Cocos Code IDE工具會從這個Lua框架目錄中創建工程文件。
接下來就可以創建Lua工程瞭,選擇菜單File→New→Project,如圖3��11所示,彈齣項目類型選擇對話框。
圖3��11項目類型選擇對話框
選中CocosLuaProject,然後單擊Next按鈕,彈齣如圖3��12所示的對話框。在Project Name項目中輸入工程名稱,Create Project in Workspace是在Workspace目錄中創建工程,需要選中該項目,Create From Existing Resource項目選中可以在已經存在的工程創建,現在不需要選中該項目。
單擊Next按鈕進入如圖3��13所示的配置運行環境對話框,在該對話框中可以配置項目運行時信息。Orientation是配置模擬器的朝嚮,其中landscape是橫屏顯示,portriat是竪屏顯。Desktop Runtime Settings中的Title是設置模擬器的標題,Desktop Windows initialize Size是設置模擬器的大小。Add Native Codes是設置添加本地代碼到工程。最後單擊Finish按鈕完成創建操作,創建好工程之後如圖3��14所示。
圖3��12新建項目對話框
圖3��13配置運行環境對話框
圖3��14創建工程成功界麵
3.4.2Cocos Code IDE中運行
創建好工程後可以測試一下,在左邊的工程導航麵闆中選中HelloLua工程,右擊菜單選擇Run As→Cocosluainding運行剛剛創建的工程,運行結果如圖3��15所示。
圖3��15運行工程界麵
編寫的程序代碼在src目錄下,在本例中,Lua文件負責處理如圖3��16所示的場景界麵邏輯。如果想調試程序,可以設置斷點,如圖3��17所示。單擊行號之前的位置。
圖3��16設置斷點
右擊選擇Debug As→CocosLuabinding菜單。如圖3��17所示,程序運行到第31行掛起,並進入調試視圖,在調試視圖中可以查看程序運行的堆棧、變量、斷點、計算錶達式和單步執行程序等操作。
圖3��17運行到斷點掛起
手機遊戲市場越來越火爆,Cocos2d團隊推齣瞭Cocos2dx遊戲引擎,它的優勢在於在一個平颱下開發,多平颱發布。很多開發團體都轉型使用 Cocos2dx開發遊戲瞭。基於這樣的一個背景,我們智捷課堂與清華大學齣版社策劃瞭5本有關Cocos2dx遊戲引擎圖書:
《Cocos2dx實戰:C++捲》;
《Cocos2dx實戰:JS捲——Cocos2dJS開發》;
《Cocos2dx實戰:Lua捲》;
《Cocos2dx實戰:工具捲》;
《Cocos2dx實戰:CocoStudio捲》。
本書是Cocos2dx遊戲引擎Lua捲,就是使用Cocos2dx的Lua語言API。
本書的編寫曆經瞭5個月的時間,從Cocos2dx3.0alpha0到Cocos2dx3.2最終版本經曆瞭多個版本的變化,而且Cocos2dx3多個版本之間有很多的變化,每次都重新修改案例、修改書中內容。
經過幾個月努力,我們終於在2014年10月完成初稿,幾個月來智捷iOS課堂團隊夜以繼日,幾乎推掉一切社交活動,推掉很多企業邀請我去講課的機會, 每天工作12小時以上,不敢有任何的鬆懈,不敢有任何的模棱兩可,隻做一件事情——編寫此書。每一個文字、每一張圖片、每一個實例都是我們的精心之作。
關於本叢書具體進展請讀者關注智捷課堂官方網站http://www.51work6.com。
關於本書網站
為瞭更好地為廣大讀者提供服務,我們專門為本書建立的一個網站http://www.cocoagame.net,大傢可以查看相關齣版進度,並對書中內容發錶評論,提齣寶貴意見。
關於源代碼
本書配套提供瞭一百多個完整的案例項目源代碼,讀者可以到本書網站http://www.cocoagame.net下載。
勘誤與支持
我們在網站http://www.cocoagame.net中建立瞭一個勘誤專區,及時地把書中的問題、失誤和糾正反饋給廣大讀者,您發現瞭有什麼問 題,可以在網上留言,也可以發送電子郵件到:eorient@sina.com,我們會在第一時間迴復您。也可以在新浪微博中與我們聯係:@tony_關 東升。
本書主要由關東升執筆撰寫。此外智捷課堂團隊的賈雲龍、趙大羽、李玉超、趙誌軍、關珊和李政剛也參與瞭部分內容的編寫工作。感謝趙大羽 老師手繪瞭書中全部草圖,並從專業的角度修改書中圖片,力求更加真實完美地奉獻給廣大讀者。感謝我的傢人容忍我的忙碌,以及對我的關心和照顧,使我能抽齣 這麼多時間,投入全部精力專心地編寫此書。
由於時間倉促,書中難免存在不妥之處,請讀者原諒,並提齣寶貴意見。
關東升
2015年2月於北京
書挺好的,挺新的,內容的話比較適閤我,適閤新手
評分很實用,很方便。。。。
評分作為入門不錯。
評分書挺好的,挺新的,內容的話比較適閤我,適閤新手
評分質量一般般,代碼還得自己下。
評分滿意
評分不錯,實用,性價比高
評分幫彆人買的,應該還不錯
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有