編輯推薦
國內一本全麵深入講解Cocos2d-x進階內容的圖書
Cocos2d-x創始人王哲作序推薦,《捕魚達人》開發人員力作
《捕魚達人》代碼大揭秘,傳授大傢如何做一個《捕魚達人》的原型
Cocos2d-x內部原理深度探秘
內容簡介
Cocos2d-x是移動跨平颱開發流行的遊戲引擎,而《Cocos2d-x高級開發教程:製作自己的<捕魚達人>》是一本很全麵的、比較“接地氣”的遊戲開發教程。書中匯聚瞭熱門手機遊戲《捕魚達人》開發的實戰經驗,作者從基礎的內容開始,逐步深入地介紹瞭Cocos2d-x的相關知識點。此外,書中的教學資源獲得《捕魚達人》手機遊戲的授權,讀者可以從一流遊戲開發中高起點地開始一段學習,掌握寶貴的開發經驗。
作者簡介
馬朔,廣州火烈鳥網絡科技有限公司CEO,帶領團隊參與瞭《捕魚達人》係列遊戲的技術開發以及Cocos2d-x for Windows Phone 7的技術移植。在學生時代就曾受蘋果公司邀請作為中國高校學生代錶赴美參加WWDC(蘋果全球開發者大會)。
尹航,廣州火烈鳥網絡科技有限公司CTO,從事移動遊戲的研發工作。曾經參與Cocos2d-x for Windows Phone 7引擎的開發,負責《捕魚達人》係列遊戲Windows Phone版本的移植工作,並參與瞭多個移動遊戲項目的開發,擁有豐富的遊戲開發經驗。
內頁插圖
精彩書評
Cocos2d-x是移動跨平颱開發流行的遊戲引擎,而本書是一本很全麵的、比較‘接地氣’的遊戲開發教程。書中匯聚瞭熱門手機遊戲《捕魚達人》開發的實戰經驗,作者從基礎的內容開始,逐步深入地介紹瞭Cocos2d-x的相關知識點。此外,書中的教學資源獲得《捕魚達人》手機遊戲的授權,讀者可以從一流遊戲開發中高起點地開始一段學習,掌握寶貴的開發經驗。
“本書不是一本簡單的參考書,更像一本教科書,無論初學者還是具備一定遊戲開發經驗的人,都將藉此開始一段精彩而奇幻的遊戲開發之旅。書中充分考慮瞭實用性,不僅討論瞭Cocos2d-x本身的知識點,而且涵蓋瞭諸如聯網、OpenGL ES、地圖工具、跨平颱移植以及HTML5遊戲版本移植等方麵的內容。讀者可以方便地學以緻用,在移動互聯網飛速發展的今天迅速把握流行趨勢,高效地掌握遊戲開發技巧。”
——gagaga,CocoaChina開發社區版主
“《捕魚達人》能獲取巨大的用戶量,首先要感謝Cocos2d-x的跨平颱特性,它使更多的用戶可以在第一時間體驗炫酷的遊戲。這是一本Cocos2d-x進階教程,可以幫助開發者打造一款完整的遊戲。這本書仿佛是《捕魚達人1》立項到上綫的所有技術難題解決方案的匯總,讓我備感親切。”
——樊少強,觸控科技技術副總監,《捕魚達人》的製作人
目錄
第一部分 引擎基礎
第1章 Hello Cocos2d-x
1.1 引擎簡介
1.2 搭建開發環境
1.3 Hello World
1.4 Hello World分析
1.5 測試樣例簡介
1.6 小結
第2章 在遊戲開始之前
2.1 基本概念
2.1.1 場景與流程控製
2.1.2 層
2.1.3 精靈
2.1.4 節點與渲染樹
2.1.5 動作與動畫
2.2 Cocos2d-x代碼風格
2.2.1 命名空間與類名稱
2.2.2 構造函數與初始化
2.2.3 選擇器
2.2.4 屬性
2.2.5 單例
2.3 C++中的Cocos2d-x內存管理
2.3.1 復雜的內存管理
2.3.2 現有的智能內存管理技術
2.3.3 Cocos2d-x的內存管理機製
2.3.4 工廠方法
2.3.5 關於對象傳值
2.3.6 釋放:release()還是autorelease()?
2.3.7 容器
2.3.8 相關輔助宏
2.3.9 Cocos2d-x內存管理原則
2.4 生命周期分析
2.5 小結
第3章 遊戲的基本元素
3.1 CCDirector:大總管
3.2 CCScene:場景
3.3 CCLayer:層
3.4 CCSprite:精靈
3.4.1 紋理
3.4.2 創建精靈
3.4.3 設置精靈的屬性
3.4.4 嚮層中添加精靈
3.4.5 常用成員
3.5 CCNode與坐標係
3.5.1 坐標係與繪圖屬性
3.5.2 節點的組織
3.5.3 定時器事件
3.5.4 其他事件
3.6 Cocos2d-x內置的常用層
3.7 Cocos2d-x調度原理
3.7.1 遊戲主循環
3.7.2 定時調度器
3.8 小結
第4章 動作
4.1 基本概念
4.2 瞬時動作
4.3 持續性動作
4.3.1 位置變化動作
4.3.2 屬性變化動作
4.3.3 視覺特效動作
4.3.4 控製動作
4.4 復閤動作
4.5 變速動作
4.6 使魚動起來
4.7 創建自定義動作
4.7.1 一點簡單的物理知識
4.7.2 創建自定義動作
4.8 讓動作更平滑流暢
4.9 Cocos2d-x動作原理
4.9.1 動作類的結構
4.9.2 動作的更新
4.9.3 CCActionManager的工作原理
4.10 小結
第5章 動畫與場景特效
5.1 動畫
5.1.1 概述
5.1.2 使用動畫
5.2 場景特效
5.3 小結
第6章 音樂與音效
6.1 使用音效引擎
6.2 支持格式
6.3 播放音樂與音效
6.3.1 預加載
6.3.2 播放與停止
6.3.3 暫停與恢復播放
6.3.4 其他成員
6.4 小結
第7章 用戶輸入
7.1 觸摸輸入
7.1.1 使用CCLayer響應觸摸事件
7.1.2 兩種Cocos2d-x觸摸事件
7.2 觸摸分發器原理
7.3 觸摸中的陷阱
7.4 使用觸摸事件
7.4.1 使炮颱動起來
7.4.2 識彆簡單的手勢
7.5 加速度計
7.6 文字輸入
7.7 小結
第二部分 引擎進階
第8章 粒子效果
8.1 Cocos2d-x中的粒子係統
8.2 粒子效果編輯器
8.2.1 界麵介紹
8.2.2 製作火焰特效
8.3 小結
第9章 大型地圖
9.1 瓦片地圖
9.2 編輯器
9.2.1 Tiled Map Editor簡介
9.2.2 創建水底世界
9.3 導入遊戲
9.4 實現層次感
9.5 預定義屬性
9.6 小結
第10章 Cocos2d-x繪圖原理及優化
10.1 OpenGL基礎
10.1.1 OpenGL簡介
10.1.2 繪圖
10.1.3 矩陣與變換
10.2 Cocos2d-x繪圖原理
10.2.1 精靈的繪製
10.2.2 渲染樹的繪製
10.2.3 坐標變換
10.3 TexturePacker與優化
10.3.1 繪圖瓶頸
10.3.2 碎圖壓縮與精靈框幀
10.3.3 批量渲染
10.3.4 色彩深度優化
10.4 小結
第11章 OpenGL繪圖技巧
11.1 自定義繪圖
11.2 遮罩層
11.3 數據交流
11.4 可編程管綫
11.4.1 可編程著色器
11.4.2 CCGLProgram
11.4.3 變量傳遞
11.5 水紋效果
11.5.1 著色器程序
11.5.2 ShaderNode類
11.5.3 uniform變量準備
11.5.4 繪製
11.5.5 添加到場景
11.6 CCGrid3D
11.7 再議效率
11.8 小結
第12章 物理引擎
12.1 新的超級武器
12.2 Box2D引擎簡介
12.3 接入Box2D
12.4 更新狀態
12.5 調試繪圖
12.6 碰撞檢測
12.7 彈射
12.8 精確碰撞
12.9 小結
第三部分 遊戲開發進階
第13章 數據持久化
13.1 CCUserDefault
13.2 格式化存儲
13.3 本地文件存儲
13.4 XML與JSON
13.5 加密與解密
13.6 SQLite
13.7 小結
第14章 網絡
14.1 網絡傳輸架構
14.2 CURL
14.3 簡單傳輸
14.4 非阻塞傳輸
14.5 用戶記錄
14.6 多人對戰與同步問題
14.6.1 時間同步
14.6.2 魚群同步
14.7 校驗
14.8 小結
第15章 緩存與池
15.1 移動設備昂貴的CPU與內存
15.2 緩存機製:預加載與重復使用
15.3 Cocos2d-x中的緩存
15.3.1 CCTextureCache
15.3.2 CCSpriteFrameCache
15.3.3 CCAnimationCache
15.4 對象池機製:可迴收與重復使用
15.5 對象池實現
15.6 落實到工廠方法
15.7 一個簡單的性能測試
15.8 使用時機
15.9 小結
第16章 並發編程
16.1 單綫程的尷尬
16.2 pthread
16.3 綫程安全
16.4 綫程間任務安排
16.5 並發編程輔助
16.6 小結
第四部分 多平颱
第17章 多平颱下的Cocos2d
17.1 Windows 8
17.2 Windows Phone平颱
17.3 Cocos2d-HTML5
17.4 移植
17.5 小結
第18章 可視化開發
18.1 CocosBuilder可視化開發
18.2 使用CocosBuilder創建場景
18.3 在Cocos2d-x項目中使用場景
18.4 小結
第19章 Cocos2d-HTML5
19.1 概述
19.2 開發流程
19.2.1 開發環境介紹
19.2.2 搭建開發環境
19.2.3 開始開發
19.3 代碼安全
19.4 小結
第20章 移植
20.1 命名原則
20.1.1 類名稱
20.1.2 類函數
20.1.3 屬性
20.1.4 選擇器
20.1.5 全局變量、函數與宏
20.2 跨語言移植
20.2.1 第一階段:代碼移植
20.2.2 第二階段:消除平颱差異
20.2.3 第三階段:優化
20.3 小結
第五部分 實戰篇
第21章 實戰演練--開發自己的《捕魚達人》
21.1 開發前的準備
21.1.1 視圖
21.1.2 模型
21.1.3 控製器
21.2 開始開發
21.2.1 第一輪迭代
21.2.2 第二輪迭代
21.2.3 第三輪迭代
附錄A 把遊戲部署到Android平颱
精彩書摘
11.4可編程管綫
正如本章開始所說的那樣,在Cocos2d—x中,最大的變革就是引入瞭OpenGL ES 2.0作為底層繪圖,這意味著渲染從過去的固定管綫升級到瞭可編程管綫,我們可以通過著色器定義每一個頂點或像素的著色方式,産生更豐富的效果。著色器實際上就是一小段執行渲染效果的程序,由圖形處理單元執行。之所以說是“一小段”,是因為圖形渲染的執行周期非常短,不允許過於臃腫的程序,因此通常都比較簡短。
11.4.1 可編程著色器
在渲染流水綫上,存在著兩個對開發者可見的可編程著色器,具體如下所示。
口頂點著色器(vertex shader)。對每個頂點調用一次,完成頂點變換(投影變換和視圖模型變換)、法綫變換與規格化、紋理坐標生成、紋理坐標變換、光照、顔色材質應用等操作,並最終確定渲染區域。在Cocos2d—X的世界中,精靈和層等都是矩形,它們的一次渲染會調用4次頂點著色器。
口段著色器(fragment shader,又稱片段著色器)。這個著色器會在每個像素被渲染的時候調用,也就是說,如果我們在屏幕上顯示一張320 X 480的圖片,那麼像素著色器就會被調用153 600次。所幸,在顯卡中通常存在不止一個圖形處理單元,渲染的過程是並行化的,其渲染效率會比用串行的CPU執行高得多。
這兩個著色器不能單獨使用,必須成對齣現,這是因為頂點著色器會首先確定每一個顯示到屏幕上的頂點的屬性,然後這些頂點組成的區域被化分成一係列像素,這些像素的每一個都會調用一次段著色器,最後這些經過處理的像素顯示在屏幕上,二者是協同工作的。
進一步深入介紹的就是頂點著色器編程語言和編程方法瞭。這裏我們並不打算這麼做,一來這是一門足夠高深的學問,絕不是一兩章能說清楚的;二來我們可以找到足夠多的開源的著色器,能夠提供各種豐富的效果,實際上需要自己編寫著色器的場閤並不太多。因此這裏我們將著重介紹如何在Cocos2d—x遊戲中導人自定義的著色器效果。
前言/序言
Cocos2d-x是一個通用平麵遊戲引擎,基於一個同樣十分著名的遊戲引擎Cocos2d-iPhone設計。它繼承瞭Cocos2d係列引擎一貫的特點:使用簡單,運行高效、靈活,且功能強大。
與Cocos2d-iPhone不同的是,Cocos2d-x還擁有強大的跨平颱能力,隻需要編寫一次代碼,就可以無縫地部署在包括iOS、Android、Windows、OS X在內的許多主流遊戲平颱之上。在移動終端日趨多樣化的今天,把遊戲部署到多種平颱是遊戲開發的大趨勢,Cocos2d-x的跨平颱能力無疑為開發者節省瞭大量的時間和精力。
本書的主要目的是嚮讀者介紹Cocos2d-x這個十分優秀的平麵遊戲引擎。閱讀完本書前三部分之後,讀者會對Cocos2d-x的各個方麵都有比較深入的瞭解,並且也會對遊戲開發的過程以及技巧有瞭一定的認識,可以得心應手地使用Cocos2d-x進行遊戲開發瞭。
同時,本書第四部分介紹瞭一些最新的遊戲開發技術,包括多平颱開發、可視化開發、遊戲移植,以及Cocos2d-HTML5。它們作為Cocos2d-x的補充,為遊戲開發者帶來瞭極大的便利。閱讀完這一部分之後,讀者將對遊戲開發的趨勢有一個新的認識。
示例代碼
本書采用瞭時下最熱門的遊戲《捕魚達人》作為遊戲示例。《捕魚達人》由北京觸控科技有限公司開發,采用Cocos2d-x作為遊戲引擎。在本書中,我們以開發自己的《捕魚達人》作為主綫,一邊講解遊戲開發技術,一邊不斷地完善捕魚遊戲,並最終引導讀者實現屬於自己的《捕魚達人》。
為瞭使讀者可以完整地體驗一次遊戲開發流程,本書還在第五部分安排瞭實戰演練章節,帶領讀者體驗真正的遊戲開發:從創建空項目開始,然後進行首輪開發與多次迭代,最終得到可以運行在移動設備上的遊戲成品。
本書示例遊戲中包含的所有資源文件,都源自觸控科技有限公司授權使用的《捕魚達人》原版資源文件。讀者可以從圖靈社區本書主頁免費獲取實戰章節中的代碼,以及所使用的資源文件。
讀者背景
閱讀本書需要具備一定的計算機知識以及編程功底。Cocos2d-x采用C++編寫,熟練掌握C++語言對於學習本書是很有必要的。此外,本書第四部分涉及瞭遊戲多平颱的話題,在閱讀這一部分時,根據讀者不同的需求,也許還需要瞭解JavaScript、Objective-C以及C#的知識。
本書是針對Cocos2d-x遊戲開發者撰寫的,無論是初學者、有一定經驗的開發者,還是對引擎內部工作原理有興趣的讀者,都十分適閤閱讀本書。
· 對於初學者:本書前兩部分從遊戲開發的基礎知識開始,詳細介紹瞭遊戲開發的方法以及所使用的工具,初學者可以輕鬆入門。
· 對於從事過遊戲開發,包括使用過其他Cocos2d引擎的讀者:本書利用《捕魚達人》作為示例,完整展示瞭遊戲從開發到部署的各個環節。書中不僅介紹瞭Cocos2d-x中常用的功能與技巧,還探討瞭許多配閤Cocos2d-x所使用的高級技術,涵蓋遊戲效率優化、網絡通信和遊戲移植等時下熱門的話題。
· 對於好奇引擎工作原理的讀者:本書第一部分與第二部分穿插剖析瞭Cocos2d-x的核心代碼,為讀者理解引擎的工作原理提供瞭清晰的思路。配閤本書來研究Cocos2d-x的代碼是一個很好的選擇。
本書分工與緻謝
本書的主要作者為尹航,整體設計及撰寫思路由馬朔負責,第1章至第7章、第8章、第10章、第17章至第20章,以及附錄A由尹航編寫,第9章、第11章至第16章由丁偉傑編寫,第21章由張三華編寫。
在此,首先要感謝北京觸控科技有限公司以及Cocos2d-x開發團隊對本書提供的多方麵的幫助,他們共同為本書提供瞭最權威的技術支持。感謝中山大學在團隊發展過程中所給予的大力支持。同樣感謝馬朔帶領下的火烈鳥網絡所有成員對本書的貢獻,他們是葉思聰、彭穎輝、潘陽和鄭浩等,沒有他們的努力,就不會有這本書。本書的插圖由尹航的女友趙婉瀅提供,感謝她提供的精美插圖以及在本書編寫過程中的支持與耐心。最後,感謝所有為本書提齣評論、建議以及支持的朋友:周順帆、小小、Hana以及其他的朋友們,他們的建議使得本書更加完善。
由於筆者水平有限,書中內容難免會有錯誤或疏漏,歡迎讀者批評指正。
Cocos2d-x高級開發教程 製作自己的捕魚達人 下載 mobi epub pdf txt 電子書 格式