精通Cocos2d-x遊戲開發 基礎捲

精通Cocos2d-x遊戲開發 基礎捲 pdf epub mobi txt 電子書 下載 2025

王永寶 著
圖書標籤:
  • Cocos2d-x
  • 遊戲開發
  • C++
  • 遊戲引擎
  • 移動遊戲
  • Qt
  • 圖形編程
  • 遊戲設計
  • 入門
  • 教程
  • 開發技巧
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 清華大學齣版社
ISBN:9787302432029
版次:1
商品編碼:11907055
品牌:清華大學
包裝:平裝
開本:16開
齣版時間:2016-04-01
用紙:膠版紙
頁數:388
字數:606000

具體描述

産品特色

編輯推薦

  Cocos2d-x創始人王哲先生傾情推薦!

  遊戲開發牛人,四年時間,三易其稿,精心打磨,成就這本精良之作

  專注於Cocos2d-x引擎底層機製,緻力於讓初學者成為一個基礎紮實、靠譜的程序員

  快速入門 → 基礎框架 → UI與交互 → CocoStudio工具鏈,都是乾貨,滿滿誠意

  內容新穎,以當前流行的Cocos2d-x遊戲引擎版本3.x為主進行講解

  深入講解瞭指針、內存、紋理等大多數初學者掌握不牢固的重要知識點

  深入剖析瞭Cocos2d-x引擎在Android、Win32和iOS等係統下的運行流程

  深入剖析瞭大量隱藏在背後的細節、解決問題的方法和思路,以及各種實用技巧和建議

  思路分析為主,實現方法次之,舉一反三,將這些能力應用於其他引擎的學習中

  風格簡潔,圖文並茂,字斟句酌,錶述嚴謹,將知識準確地呈現在讀者麵前

  內容雖然基礎,但卻極具深度,既適閤基礎薄弱的程序員入門,也適閤想透徹研究Cocos2d-x引擎的程序員進階

  提供QQ交流群和E-mail等交流方式,為讀者答疑解惑


遊戲開發圖書海報:

內容簡介

  《Cocos2d-x遊戲開發》分為《基礎捲》和《進階捲》兩個分冊。兩捲書籍都有明確的寫作目的。《基礎捲》專注於Cocos2d-x引擎基礎,緻力於讓Cocos2d-x初學者成為一個基礎紮實、靠譜的程序員。《進階捲》專注於各種實用技術,是作者多年開發經驗的結晶,書中的技術點大多是基於實際工作中碰到的問題提煉而來,從問題的本質齣發到解決問題的思路,提供瞭多種解決方案,並對比各方案的優缺點,啓發讀者思考。
  本書為《Cocos2d-x遊戲開發》的《基礎捲》,共31章,分為4篇。第1篇為《入門篇》,涵蓋的主要內容有Cocos2d-x開發環境、學習建議、注意事項及低級錯誤總結,以及必備的C++編程基礎和指針知識等。第2篇為《基礎框架篇》,涵蓋的主要內容有節點係統、內存管理、場景和層、精靈、動作係統、動畫、紋理、文字、運行機製、渲染機製、消息機製和Schedule等。第3篇為《UI與交互篇》,涵蓋的主要內容有觸摸輸入、文本輸入、按鈕與重力感應輸入、Menu和MenuItem,以及GUI框架的功能控件、文本輸入、文本顯示及容器控件等。第4篇為《CocoStudio工具鏈篇》,涵蓋的主要內容有CocoStudio的UI編輯器、場景編輯器、動畫編輯器、2.x編輯器及CocosBuilder等。
  本書適閤學習Cocos2d-x遊戲開發的零基礎讀者閱讀,尤其適閤Cocos2d-x自學人員。對於大中專院校的學生和社會培訓班的學員,本書也是一本不可多得的學習教程。
  快速瞭解本書精華內容
  入門篇
  Cocos2d-x啓航
  使用Cocos2d-x
  低級錯誤大全
  圖解指針
  C++11簡介
  基礎框架篇
  節點係統
  內存管理
  場景和層
  精靈詳解
  動作係統
  播放動畫
  紋理詳解
  顯示文字
  運行機製
  渲染機製
  消息機製
  Schedule詳解
  UI與交互篇
  觸摸輸入
  文本輸入
  按鈕與重力感應輸入
  Menu和MenuItem
  GUI框架概述
  GUI框架功能控件
  GUI框架文本輸入和顯示
  GUI框架容器控件
  CocoStudio工具鏈篇
  CocoStudio概述
  CocoStudioUI編輯器
  CocoStudio場景編輯器
  CocoStudio動畫編輯器
  CocoStudio 2.x編輯器
  CocosBuilder

作者簡介

  王永寶,自高一起就自學編程,至今10年有餘。酷愛遊戲開發,熟練掌握C/C++、Lua和C#等編程語言,擅長網絡編程、高並發服務端架構設計、客戶端框架設計和OpenGL等技術。2010年參加廣東省“專業杯”軟件設計大賽,在31所院校的86支隊伍的激烈競爭中,憑藉一個月內使用三門語言開發的塔防遊戲而獲得瞭一等奬。同年進入深圳市飯後科技有限公司,擔任過C++服務端主程、Unity3D主程和Cocos2d-x主程,並作為技術負責人負責瞭多款遊戲的開發。業餘時間潛心研究遊戲開發,也開發瞭多款遊戲。

內頁插圖

精彩書評

  永寶擁有豐富的一綫研發經驗,對Cocos引擎也有著深入而獨到的理解。整整的四年時間裏,他對這本書傾注瞭大量的心血,三易其稿,精心打磨。這份執著的熱忱和精益求精的態度令人感動。寶劍鋒從磨礪齣,這本書內容新穎,緊跟趨勢,注重本質,講述準確,由淺入深,層層遞進,既能夠引領初學者打開Cocos開發世界的大門,也能幫助具有一定經驗的開發者更上一層樓,是本不可多得的專業好書。

  ——Cocos2d-x創始人 王哲

目錄

第1篇 入門篇
第1章 Cocos2d-x啓航
1.1 特點、內容結構以及建議
1.2 Cocos2d-x簡介
1.3 從2.x到3.x
1.4 約定
1.5 啓航
1.5.1 Windows
1.5.2 Mac
1.5.3 Linux
1.5.4 Cocos引擎
第2章 使用Cocos2d-x
2.1 Cocos2d-x世界
2.1.1 顯示圖片
2.1.2 執行邏輯
2.1.3 獲取輸入
2.2 分析HelloCpp
2.3 小結
第3章 低級錯誤大全
3.1 create和retain-release
3.2 繼承對象的create
3.3 多個對象執行同一個Action
3.4 忘記調用父類的虛函數
3.5 隱藏在代碼中的神秘殺手,節點中的節點操作
3.6 普通對象和new齣來的對象
3.7 不要忘記init
3.8 addChild失敗
3.9 在onEnter中調用parent的addChild
3.10 忘記移除
3.11 重載draw注意事項
3.12 關於引用
3.13 關於命名空間
3.14 關於類之間的互相包含
3.15 關於平颱相關的API
3.16 關於update中寫邏輯
3.17 關於調試
3.18 小結
第4章 圖解指針
4.1 指針與內存
4.2 指針操作
4.3 指針與數組
4.4 函數指針
4.5 野指針和內存泄漏
第5章 C++11簡介
5.1 初始化列錶
5.2 類型推導
5.3 範圍推導
5.4 智能指針和空指針
5.5 Lambda特性
5.6 變長參數模闆
5.7 右值引用
5.7.1 分辨左值和右值
5.7.2 移動語義
5.7.3 完美轉發
5.8 顯式虛函數重載
5.9 小結
第2篇 基礎框架篇
第6章 節點係統
6.1 節點的錶現
6.1.1 位置
6.1.2 鏇轉和傾斜
6.1.3 縮放
6.1.4 錨點Anchor
6.1.5 渲染順序ZOrder
6.1.6 尺寸
6.1.7 懶惰計算
6.1.8 其他屬性介紹
6.2 節點的使用
6.2.1 使用Action
6.2.2 使用Schedule
6.3 節點和節點
6.3.1 添加子節點
6.3.2 刪除節點
6.3.3 節點查詢
6.3.4 節點之間的空間變換
6.4 節點樹的渲染
6.5 節點與組件
第7章 內存管理
7.1 內存基礎知識
7.1.1 內存區域的劃分
7.1.2 new和malloc的區彆
7.1.3 堆和棧的區彆
7.1.4 代碼分析
7.2 內存泄露、野指針和跨動態鏈接庫的內存使用
7.2.1 內存泄露
7.2.2 野指針
7.2.3 動態鏈接庫的內存
7.3 Cocos2d-x的引用計數
7.4 容器對象的內存管理
7.5 復製對象
7.6 內存優化
第8章 場景和層
8.1 Scene場景
8.1.1 場景和Director
8.1.2 切換場景與引用計數
8.1.3 場景切換特效
8.2 Layer層
8.2.1 Layer層詳解
8.2.2 LayerColor顔色層詳解
8.2.3 LayerGradient漸變層詳解
8.2.4 LayerMultiplex復閤層詳解
第9章 精靈詳解
9.1 Sprite詳解
9.1.1 使用Sprite
9.1.2 創建Sprite
9.1.3 初始化流程
9.1.4 設置紋理
9.1.5 渲染
9.2 SpriteFrame和SpriteFrameCache詳解
9.2.1 SpriteFrame詳解
9.2.2 SpriteFrameCache詳解
9.2.3 SpriteFrameCache加載流程
9.3 SpriteBatchNode詳解
9.3.1 創建SpriteBatchNode
9.3.2 添加與刪除SpriteBatchNode
9.3.3 使用SpriteBatchNode
第10章 動作係統
10.1 使用Action
10.2 Action整體框架
10.2.1 Action類
10.2.2 ActionManager類
10.3 Action運行流程
10.3.1 瞬時動作ActionInstant
10.3.2 持續動作ActionInterval
10.3.3 組閤動作
10.3.4 函數動作
10.3.5 時間動作
10.4 Action的分類
10.4.1 瞬間動作
10.4.2 持續動作
10.4.3 組閤動作
10.4.4 變速動作
10.4.5 擴展動作
10.4.6 特效動作
第11章 播放動畫
11.1 播放幀動畫
11.2 創建Animation
11.2.1 基於Plist文件自動創建Animation
11.2.2 解析TexturePacker的Plist文件
11.2.3 使用AnimationCache
11.2.4 經驗分享
11.3 幀動畫框架剖析
11.3.1 幀動畫係統結構
11.3.2 Animate運行流程
11.4 進度動畫
11.4.1 半徑掃描效果
11.4.2 水平掃描效果
11.4.3 垂直掃描效果
11.4.4 四邊擴散/收縮效果
第12章 紋理詳解
12.1 在Cocos2d-x中使用紋理
12.1.1 Texture的初始化
12.1.2 紋理和Sprite的關係
12.1.3 POT和NPOT
12.1.4 紋理混閤 Blend
12.1.5 Alpha預乘
12.1.6 紋理參數
12.1.7 紋理過濾 Texture Filter
12.1.8 紋理環繞
12.1.9 Mip貼圖
12.1.10 渲染紋理
12.2 管理紋理
12.2.1 使用TextureCache管理紋理
12.2.2 使用TextureCache加載紋理
12.2.3 異步加載紋理
12.3 紋理格式
12.4 紋理壓縮
12.4.1 紋理壓縮格式對比
12.4.2 在Cocos2d-x中使用紋理壓縮
12.4.3 使ETC1支持透明
第13章 顯示文字
13.1 使用Label
13.1.1 LabelTTF詳解
13.1.2 LabelBMFont詳解
13.1.3 LabelAtlas詳解
13.1.4 Label詳解
13.2 新Label框架剖析
13.2.1 整體框架
13.2.2 運行流程
13.2.3 STRING_TEXTURE類型Label的運行流程
13.2.4 使用FontAtlas的Label的運行流程
13.2.5 FontAtlas的創建流程
13.3 關於中文顯示
13.3.1 使用中文配置文件csv/xml/plist
13.3.2 將代碼文件轉為UTF-8編碼
13.3.3 使用iconv轉換中文
13.4 造字工具
13.4.1 使用BMFont工具
13.4.2 使用Hiero工具
第14章 運行機製
14.1 Cocos2d-x內部運行流程
14.1.1 Application詳解
14.1.2 Director詳解
14.2 Cocos2d-x在Windows下的運行流程
14.3 Cocos2d-x在Android下的運行流程
14.3.1 啓動遊戲
14.3.2 遊戲事件與主循環
14.4 Cocos2d-x在iOS下的運行流程
14.4.1 啓動遊戲
14.4.2 主循環
第15章 渲染機製
15.1 渲染樹VS渲染命令
15.1.1 渲染樹
15.1.2 渲染命令
15.2 Cocos2d-x 3.0渲染框架
15.3 渲染命令詳解
第16章 消息機製
16.1 事件通知
16.2 NotificationCenter和EventDispatcher
16.2.1 使用EventDispatcher
16.2.2 相關接口
16.2.3 其他監聽者
16.2.4 使用NotificationCenter
16.3 內部流程以及注意事項
16.3.1 消息的通知流程
16.3.2 消息的注冊流程
16.3.3 消息的注銷流程
16.4 小結
第17章 Schedule詳解
17.1 Schedule接口簡介
17.1.1 迴調函數
17.1.2 注冊迴調
17.1.3 注銷迴調
17.1.4 時間縮放、暫停、恢復
17.1.5 優先級
17.1.6 綫程安全
17.2 Schedule整體結構與運行流程
17.2.1 整體結構
17.2.2 外部流程
17.2.3 更新順序
17.2.4 注冊與注銷
17.3 Schedule使用過程中的問題
第3篇 UI與交互篇
第18章 觸摸輸入
18.1 如何監聽觸摸消息
18.1.1 監聽觸摸消息
18.1.2 觸摸監聽者
18.1.3 觸摸消息
18.1.4 注冊監聽
18.2 觸摸輸入運行流程
18.3 判斷點擊
18.4 多點觸摸
18.5 點擊穿透
第19章 文本輸入
19.1 TextFieldTTF簡介
19.2 使用TextFieldTTF
19.3 擴展TextFieldTTF
19.4 詳解IME
第20章 按鈕與重力感應輸入
20.1 重力感應
20.1.1 搖一搖
20.1.2 多角度傾斜
20.2 物理按鍵
第21章 Menu和MenuItem詳解
21.1 使用Menu和MenuItem
21.2 結構框架與執行流程
21.2.1 Menu詳解
21.2.2 MenuItem詳解
21.2.3 執行流程
21.3 MenuItem詳解
21.3.1 MenuItemLabel詳解
21.3.2 MenuItemAtlasFont詳解
21.3.3 MenuItemFont詳解
21.3.4 MenuItemSprite詳解
21.3.5 MenuItemImage詳解
21.3.6 MenuItemToggle詳解
21.4 實現TabView
第22章 GUI框架概述
22.1 GUI框架簡介
22.1.1 命名空間與頭文件
22.1.2 工具方法
22.1.3 九宮縮放
22.2 UIWidget詳解
22.2.1 保護節點ProtectNode
22.2.2 高亮相關
22.2.3 位置布局相關
22.2.4 觸摸相關
22.2.5 控件焦點
22.2.6 實現自己的Widget
22.3 UILayout詳解
22.3.1 Layout背景
22.3.2 裁剪
22.3.3 焦點查找
22.3.4 Layout布局
第23章 GUI框架之功能控件
23.1 UIButton控件
23.1.1 創建Button
23.1.2 加載圖片
23.1.3 設置九宮
23.1.4 設置文字
23.2 UICheckBox控件
23.2.1 創建CheckBox
23.2.2 加載圖片
23.2.3 選擇
23.3 UIImageView控件
23.3.1 創建ImageView
23.3.2 紋理與九宮
23.4 UILoadingBar控件
23.4.1 創建LoadingBar
23.4.2 紋理與九宮
23.4.3 方嚮與進度
23.5 UISlider控件
23.5.1 創建與加載紋理
23.5.2 九宮
23.5.3 進度與迴調
第24章 GUI框架之文本輸入和顯示
24.1 UIText、UITextAtlas和UITextBMFont文本顯示控件
24.2 UIRichText文本顯示控件
24.3 UITextField文本輸入控件
24.3.1 創建TextField
24.3.2 觸摸相關
24.3.3 輸入密碼
24.3.4 設置、獲取文本
24.3.5 輸入迴調
24.3.6 自動換行與對齊
24.4 UIEditBox文本輸入控件
24.4.1 創建EditBox
24.2.2 文本與輸入提示文本
24.4.3 輸入委托
24.4.4 輸入模式
24.4.5 標簽與限製
第25章 GUI框架之容器控件
25.1 UIScrollView容器控件
25.1.1 拖曳滾動
25.1.2 InnerContainer詳解
25.2 UIListView容器控件
25.3 UIPageView容器控件
25.4 UIWebView容器控件
25.4.1 加載頁麵
25.4.2 操作頁麵
25.4.3 頁麵迴調
第4篇 CocoStudio工具鏈篇
第26章 CocoStudio概述
26.1 CocoStudio是什麼
26.2 CocoStudio的設計目標
26.3 使用CocoStudio
26.3.1 使用UI編輯器
26.3.2 使用動畫編輯器
26.3.3 使用數據編輯器
26.3.4 使用場景編輯器
26.3.5 使用CocoStudio 2.x
26.4 管理資源
26.5 版本對應
第27章 CocoStudio UI編輯器
27.1 使用UI編輯器
27.2 編寫代碼
27.2.1 加載UI
27.2.2 UI動畫
27.2.3 初始化UI
27.2.4 更新UI
27.3 分辨率適配
27.4 擴展UI編輯器
第28章 CocoStudio場景編輯器
28.1 使用場景編輯器
28.2 組件係統
28.3 觸發器
28.3.1 觸發器的使用
28.3.2 觸發器的代碼框架以及運作流程
28.3.3 觸發器的擴展
28.4 加載場景
第29章 CocoStudio動畫編輯器
第30章 CocoStudio 2.x編輯器
第31章 使用CocosBuilder

精彩書摘

  第1章 Cocos2d-x啓航
  本章主要介紹以下內容:
  簡單介紹本書的特點、內容結構以及不同人群的閱讀建議。
  簡單介紹Cocos2d-x。
  對比Cocos2d-x 3.x以及之前的版本。
  版本相關的代碼約定。
  掃除阻礙,讓你的Cocos2d-x跑起來。
  1.1 特點、內容結構以及建議
  本書的特點是言簡意賅、圖文並茂、態度嚴謹、知識麵廣,一個問題能用一句話說清楚,盡量不說兩句,盡量用圖片來錶達意圖。字裏行間反復斟酌、擴散思維、舉一反三。此書不是一本貼代碼的書,但程序離不開代碼。它也不是一本TestCpp的注釋書,但我們擁抱TestCpp。雖然個人追求簡潔,但適當的舉例可以幫助理解,不停留在錶麵的使用,而是深入到內部的實現,擴展到實際應用。三年時間,傾我心血,經過瞭數次推翻重寫,相信會成為一本實用的Cocos2d-x入門到進階書籍!
  Cocos2d-x遊戲開發分為上下兩捲,本書是上捲《基礎捲》,共有4篇,都屬於Cocos2d-x的入門基礎,與Cocos2d-x緊密相關。基礎乃重中之重,而在Cocos2d-x風靡之際,很多Java、ActionScript程序員以及應屆生轉戰Cocos2d-x,基礎不甚牢固,相信通過閱讀、理解本書,可以起到鞏固基礎、豐富底蘊的作用,成為一個“靠譜”的Cocos2d-x開發人員。
  而下捲《進階捲》則偏嚮具體的實戰經驗,更多的是講解思路、方法和實踐上,包含瞭物理、適配、熱更新、存檔、加密等實用技術,客戶端網絡編程到PHP、C++服務端的開發,以及豐富的跨平颱開發經驗,可以作為Cocos2d-x遊戲開發的案頭書,也可作為涉獵書。
  對於初學者而言,其中的一些章節描述可能過於深入,對於這些章節中不理解的部分,初學者不必深究,暫且跳過。
  第1篇是《入門篇》,主要介紹如何讓Cocos2d-x運行起來,新建項目,Cocos2d-x正確的使用方法,一些易犯錯誤的總結,以及C++11和指針的指引,這部分主要是給沒有Cocos2d-x開發經驗的人閱讀,C++11簡介和圖解指針這兩章適閤由Unity3D(簡稱U3D)、Java或其他語言轉到Cocos2d-x的人閱讀,易犯錯誤總結適閤Cocos2d-x經驗不豐富的人閱讀。
  第2篇是《基礎框架篇》,主要介紹Cocos2d-x最核心的係統,它是Cocos2d-x的基本功,適閤需要係統學習或者復習Cocos2d-x的人閱讀。
  第3篇是《UI與交互篇》,這一篇專門介紹Cocos2d-x的各種交互手段,以及整個GUI架構,同基礎框架,也屬於Cocos2d-x的基本功。
  第4篇是《CocoStudio工具鏈篇》,工欲善其事必先利其器,這一篇主要圍繞CocoStudio工具集為核心,介紹瞭常用工具的使用,解決瞭一些使用過程中遇到的問題,適閤要瞭解或學習Cocos2d-x周邊工具的人閱讀。
  1.2 Cocos2d-x簡介
  Cocos2d-x是從Cocos2d發展而來的移動2D遊戲框架,可以用C++、Lua、JavaScript來進行開發。Cocos2d-x項目可以很容易地建立和運行在iOS、Android、黑莓Blackberry等操作係統中。Cocos2d-x還支持Windows、Mac和Linux等桌麵操作係統,因此,開發者可以很方便地在桌麵操作係統中開發和調試。在操作係統之上,是平颱相關的中間層,以及一些第三方的庫,如物理、腳本、圖形、聲音等,中間層之上,是Cocos2d-x的封裝,而在最上層,就是使用Cocos2d-x引擎開發的遊戲邏輯,整體架構如圖1-1所示 (該圖來源於Cocos2d-x官網文檔)。
  圖1-1 引擎整體架構
  框架實現瞭各個平颱相關的封裝,提供瞭圖像渲染、UI係統和輸入交互、文件操作、動作動畫、消息係統、時間調度、音樂音效播放等一係列實用的基礎功能,還包含瞭物理引擎、腳本綁定等可選功能。
  圍繞Cocos2d-x引擎周邊有Quick-Cocos2d-x,這是在Cocos2d-x的基礎上建立的一個以Lua為主的框架,旨在提高開發效率。
  Cocos2d-JS是一個基於Cocos2d-x,使用JavaScript的Web遊戲框架。
  Cocos Code IDE是一個程序員使用的編碼工具,主要用於編輯和調試Lua、JavaScript代碼。
  Cocos Studio則是一套各種資源編輯處理的工具,為Cocos2d-x輸齣場景、UI、動畫等資源。
  最後,所有的內容會被集成到Cocos引擎中,Cocos引擎整閤瞭Cocos2d-x及其周邊的分支和工具,目的是實現一鍵安裝,建立統一清晰的工作流。
  1.3 從2.x到3.x
  Cocos2d-x 從2.x版本到3.x版本發生瞭巨大的變化,這裏簡單羅列如下:
  C++標準使用瞭新的C++11標準,語法上的差異在第5章中將詳細介紹,在Windows係統下,需要使用VS 2012以上的版本纔能編譯C++11標準的代碼。在Mac下的XCode從4.1開始支持C++11特性,但更後麵的版本支持得更好。Linux則需要使用GCC 4.7以上的編譯器纔支持C++11。
  渲染方麵從渲染樹修改為渲染隊列,新增的自動批處理渲染大大減少瞭DrawCall,提高瞭渲染效率,在第15章中會詳細介紹。
  命名風格變化很大,擺脫瞭Cocos2d,擺脫瞭OC化。
  重構瞭消息機製,將觸摸、按鍵、重力等各種輸入從委托模式調整為監聽者模式。
  新增瞭3D相關的功能,包括一些簡單的3D特效和3D碰撞檢測。
  容器重做,廢棄瞭原先自定義的係列容器,直接封裝瞭STL容器使用。
  簡化跨平颱項目創建和打包的流程,Cocos2d-x從2.x版本開始就一直緻力於簡化該過程。
  在Node中封裝瞭物理引擎,但這個封裝並不恰當。
  提供瞭全局ZOrder順序,同時關聯到渲染和點擊觸碰。
  1.4 約 定
  在開始之前,先聲明一些約定,以應對Cocos2d-x變化莫測的接口,接口的名字叫什麼,本不必糾結,但我們需要將程序跑起來,所以接口的名字錯不得。
  這裏主要聲明Cocos2d-x 2.x和3.x版本的名字區彆,以便於在介紹代碼時,不被版本所睏。本書中的代碼基本都是以3.0之後的代碼為準, 除瞭一些3.x的新特性外,使用2.x的可以通過遵循我們的約定來使代碼運行起來。
  代碼上的第一個改變是去除瞭CC前綴,如果讀者使用的是2.x版本,那麼引擎的類名需要加上CC前綴,而3.x是沒有CC前綴的。
  常用類和數據結構,CCPoint改為瞭Vec2,CCObject改為瞭CCRef。
  獲取單例接口的調整,從sharedxxxxx改為瞭getInstance。
  變量命名,從m_b touchEnabled 到 _touchEnabled,摒棄瞭匈牙利命名法。
  因為接口改變而導緻的編譯錯誤並不難解決,與其介紹所有版本的接口區彆,不如直接解決接口錯誤,這是程序員的基本能力。如果編譯錯誤都解決不瞭,如何解決更復雜的錯誤?大部分的代碼差異都隻是一些名字上的小改動,這種用約定來解決。
  約定解決不瞭的編譯錯誤,如果是對象的方法名改瞭,可以用“轉到定義”的功能來跳轉到錯誤對象的頭文件,然後搜索名字最接近的函數。如果是對象的名字被改瞭,可以通過查看使用瞭該對象的相關接口來確定該對象的新名字,然後 修改。
  一些代碼是經曆瞭重構,接口甚至思想都不一樣瞭,我們會在具體的章節中對比、分析,看重構前後有什麼區彆,是更好還是更壞,好在哪裏,壞在哪裏。
  文中會使用粗體來錶示重點內容,用圓括號括起來的內容錶示旁白或旁注。
  ......
  第3章 低級錯誤大全
  一些低級錯誤可能是阻礙一個初學者入門的最大障礙。低級錯誤可能會狠狠地打擊初學者的信心和學習熱情!入門篇的目的是為初學者掃清入門障礙,鞏固基礎,建立對Cocos2d-x的整體認識,降低初學過程的齣錯幾率。
  在使用Cocos2d-x時,特彆是新手,不犯錯誤是不可能的,本章將告訴你,Cocos2d-x的代碼,不能怎樣寫!這裏麵有些是習慣問題,有些是新手比較容易犯的問題,也有些是老手都有可能不小心中招的問題。本章盡量將這些問題的癥狀和原因一一列齣,以便中招的時候能夠提供一些綫索。
  這裏總結的一些問題是筆者從Cocos2d-x 1.x版本到現在的Cocos2d-x 3.x發現的問題,隨著版本的更新,其中一些問題已經被修復,但大部分的修復隻是從運行錯誤變為瞭編譯錯誤。本章主要介紹以下內容:
  create和retain-release。
  繼承對象的create。
  多個對象執行同一個Action。
  忘記調用父類的虛函數。
  隱藏在代碼中的神秘殺手,節點中的節點操作。
  普通對象和new齣來的對象。
  不要忘記init。
  addChild失敗。
  在onEnter中調用parent的addChild。
  忘記移除。
  重載draw注意事項。
  關於引用。
  關於命名空間。
  關於類之間的互相包含。
  關於平颱相關的API。
  關於update中寫邏輯。
  關於調試。
  3.1 create和retain-release
  這是一位自稱有8年C++經驗的“大牛”犯下的低級錯誤,錯誤是這樣産生的,在初始化時使用create方法創建瞭一個動畫對象,在初始化函數中進行測試,這個動畫是可以正常播放的。
  根據需求,需要在對象被攻擊到時播放這個動畫,於是將動畫對象作為成員變量,在init中使用create方法創建動畫對象,初始化後並賦值給成員變量。
  將播放動畫的代碼遷移至update的邏輯中,在觸發相應的事件時,播放動畫,但運行後就崩潰瞭,原因是動畫對象被釋放瞭。
  因為使用create方法創建齣來的對象的release在這一幀會被Cocos2d-x調用,如果不希望它被釋放,請確保你執行瞭retain操作。執行之後調用release操作來釋放,確保沒有內存泄漏。更多關於內存的問題可以參考第7章。
  解決這個問題有兩種方法,第一種是在每次需要使用一個對象的時候,纔調用create方法進行創建,Cocos2d-x中大部分情況下都是這樣使用的。第二種是在初始化時創建一次,然後調用對象的retain方法,以避免該對象在外部被釋放,後在不需要使用該對象時,調用對象的release方法,以避免內存泄露。
  注意:文中retain指執行retain(引用)操作,或調用retain(引用)操作。rease指執行release(釋放)操作,調用release(釋放)操作。後麵為錶述方便,直接用retain和release來錶達。
  3.2 繼承對象的create
  這是筆者曾經犯過的一個小錯誤,筆者的對象MySprite繼承於Sprite,然後習慣性地使用MySprite::create來創建對象,結果發現create創建齣來的對象並不是MySprite而是Sprite。這會導緻一些奇怪的錶現,而原因正是在MySprite的定義中遺漏瞭一行代碼——CREAT_FUNC(MySprite),導緻create調用的是父類Sprite的方法。
  3.3 多個對象執行同一個Action
  當希望多個對象執行同一個Action時,並不能這樣操作:
  Action* act = MoveTo::create(...);
  sprite1->runAction(act);
  sprite2->runAction(act);
  因為每個Action隻能被一個對象執行,如果希望多個對象執行一個Action,可以使用clone來創建一個新的實例。
  3.4 忘記調用父類的虛函數
  這是一個很經典,很容易犯的錯誤,當我第一次碰到這個錯誤的時候,浪費瞭很多時間,因此希望能幫大傢節省一些時間。如果你繼承瞭某個Cocos2d-x的類,又重寫瞭它的init或者onEnter函數,那麼一不小心就可能齣現一些比較奇怪的問題,例如,對這個對象施加一個動作,而這個對象沒有任何反應,那麼首先你會從這個動作上來找問題,而很難想到是因為沒有調用到父類的函數。
  在很多情況下都需要用到繼承、重寫虛函數,當重寫虛函數的時候,先看一下父類的這個虛函數做瞭什麼。如果這些操作是必須的,就在函數中對父類的虛函數進行調用,如CGameObject繼承瞭Sprite並重寫瞭Sprite的onEnter。
  void CGameObject::onEnter()
  {
  //切記迴調父類
  Sprite::onEnter();
  scheduleUpdate();
  }
  3.5 隱藏在代碼中的神秘殺手,節點中的節點操作
  這是筆者2013年碰到的BUG,歸功於自動提示,它製造瞭一個很隱蔽的BUG,筆者將一個節點添加到瞭另外一個節點中,希望每次單擊它都能夠嚮上移動x個單位,於是代碼變成瞭這樣:
  node->setPositionY(getPositionY() + dis);
  然後,這個對象就突然消失不見瞭,筆者以為是其他地方改變瞭其位置,或者被隱藏瞭或意外地刪掉瞭,最後筆者跟蹤到代碼裏麵進行調試纔發現,括號中的getPositionY返迴的並不是自己的Y坐標,而是this的Y坐標,this != node,所以其就偏到屏幕外去瞭,在節點中操作其他節點時,代碼不要輸入太快!
  ……

前言/序言

  第一次接觸Cocos2d-x是在2012年初。當時與一位朋友嘗試著製作瞭一款小遊戲,上瞭App Store平颱。在開發中,筆者主要負責遊戲美術,這其實不是筆者的長項,所以該遊戲的美術效果可以用慘不忍睹來形容。雖然那時候的引擎版本隻是1.x,並且開發的遊戲相當失敗,但通過這個遊戲,筆者對Cocos2d-x産生瞭濃厚的興趣。

  其實Cocos2d-x算不上是一款功能超強的遊戲引擎,但它很簡潔、小巧,是一款輕量級的遊戲引擎。大多數程序員實際上更喜歡簡潔的東西,而不是龐然大物。Cocos2d-x簡潔的設計結閤豐富的Demo,讓人可以很快上手,並能使用它開發齣一些簡單的遊戲。其代碼的開源及跨平颱特性也相當誘人。Cocos2d-x本身的這些特性結閤市場的需求,使其很快就成為瞭手遊開發的主流引擎之一。

  在Cocos2d-x剛開始火的那一段時間,市麵上關於Cocos2d-x的書籍還十分匱乏。筆者利用業餘時間對該引擎進行瞭深入研究,並能使用它開發瞭幾個小遊戲,也總結瞭一些開發經驗。之後一段時間,筆者萌生瞭按照自己的想法寫一本Cocos2d-x遊戲開發圖書的想法。這個想法很快便進入瞭實施階段,但進展遠沒有想象的順利。其原因一方麵是筆者寫作的速度跟不上Cocos2d-x的更新速度,另一方麵是筆者的工作任務也很重,加之寫作期間還開發瞭四五個遊戲作品,這使得筆者本來就不充裕的時間更是捉襟見肘。

  的確,Cocos2d-x的更新非常頻繁,並且引擎更新的同時帶來瞭很多接口的變化,一些代碼甚至需要進行重構。除瞭原有內容的變化改動之外,日益增加的新功能也加大瞭寫作的難度。雖然2013年底筆者已經完成瞭初稿,但是迴過頭來閱讀一遍,發現書稿難以達到自己的預期。於是筆者做瞭一個決定:推翻重寫。在經曆瞭幾個月的重寫之後,Cocos2d-x版本已經升級到瞭3.0。筆者發現又有許多新增功能和新特性需要重新瞭解和學習,於是又經曆瞭一段時間的學習和使用,不得不決定再次對該書做較大的改動,幾乎又推翻重寫瞭一次。可以說,這幾年筆者的業餘時間隻做瞭這麼一件事情。從開始寫作直至完成書稿,整個過程雖然寥寥數語,但卻飽含艱辛。在寫作的過程中,Cocos2d-x的書籍如雨後春筍,加上自己工作繁忙,寫作時間所限,甚至還有放棄的念頭。但寫一本自己滿意的Cocos2d-x圖書的信念支撐筆者走到瞭最後。當然,這一切對筆者而言很有意義,也很有價值:其一是有機會能和讀者共享自己的心得體會;其二是自己也得到瞭提升。畢竟寫書相對於寫代碼而言需要考慮的東西更多。代碼寫錯,還可以改正,而書寫錯則將誤人子弟。

  考慮到讀者群體的不同,筆者將本書分為《基礎捲》和《進階捲》兩個分冊。《基礎捲》主要是為瞭讓讀者夯實Cocos2d-x遊戲開發的基礎知識,適閤沒有經驗的零基礎讀者閱讀。《進階捲》的內容全麵,且實用性很強,可以拿來就用,快速解決問題,適閤想要進階學習的讀者閱讀,也可以作為一本解決實際問題的手冊使用。當然,對於想要全麵而深入學習Cocos2d-x遊戲開發的讀者而言,則需要係統閱讀這兩本書方可。

  本書是《精通Cocos2d-x遊戲開發》的《基礎捲》,是一本略有深度的Cocos2d-x入門圖書。本書係統地介紹瞭Cocos2d-x基礎語法,並由淺入深介紹瞭Cocos2d-x遊戲引擎底層的實現,同時還引申齣瞭其他相關問題和使用時應該注意的事項。對於初學者,本書的部分內容可能略有些深入,如果遇到難以理解的地方,建議先跳過,等讀完後續章節之後再迴過頭來閱讀前麵未理解的部分,相信對很多問題就有瞭新的認識。學習任何知識,基礎都是重中之重,相信本書可以幫助讀者打下Cocos2d-x遊戲開發的堅實基礎。

  本書內容特色

  1.內容新穎,緊跟趨勢

  本書內容新穎,緊跟技術趨勢,以當前主流的Cocos2d-x遊戲引擎版本3.x為主進行講解,在一些必要的地方也兼顧瞭早期的2.x版本的內容,並對新舊版本之間的差異做瞭必要說明,適閤更多的讀者群體閱讀。

  2.追本溯源,注重核心

  本書用較多篇幅介紹瞭Cocos2d-x遊戲引擎的基礎框架,並對UI與交互的相關內容做瞭詳細講解。這些內容都是Cocos2d-x遊戲引擎的核心技術,深入理解這些內容,便於讀者更好地理解Cocos2d-x遊戲引擎的底層實現。

  3.追求原創,與時俱進

  相較於市場上韆篇一律的Cocos2d-x學習教程,本書力求做到與眾不同,與時俱進。書中的內容不是堆砌知識點和簡單地翻譯技術文檔,而是從學習和理解的角度齣發,並結閤作者的實際開發經驗,按不同層次讀者的學習特性組織內容和講解,從而達到更好的講授效果。

  4.由淺入深,循序漸進

  本書內容編排非常科學,講解時先拋齣一些簡單的問題供讀者思考,然後發散思維,再逐步擴展到更多、更深入的問題上,繼而步步推進,抽絲剝繭,逐層深入,將讀者順利引領到不同階段的學習之中。

  5.風格活潑,講述準確

  刻闆的風格不是筆者所鍾愛的行文風格。筆者更喜歡用較為簡單和自由的文字和讀者交流,所以本書閱讀起來並不會枯燥乏味。另外,講解的準確性是科技圖書的基本要求,隻有準確的錶達纔能讓讀者不至於齣現太多的理解偏差。所以筆者對書中的錶述經過瞭反復斟酌和提煉,並采用瞭大量例圖、舉例和類比等手法,以便於讀者更容易理解和掌握。

  6.舉一反三,擴展思維

  本書並不滿足於按部就班地介紹功能和API,而是從實際應用齣發,擴散思維,在解決問題的同時,讓讀者思考問題的本質,以更深入地理解所學知識,從而達到舉一反三,學以緻用的效果。即所謂知行閤一,方能真正掌握知識。

  本書內容及知識體係

  第1篇 入門篇(第1~5章)

  本篇屬於Cocos2d-x開發的基礎鋪墊,涵蓋的主要內容有Cocos2d-x開發環境搭建、學習建議、注意事項及低級錯誤總結,以及必備的C++編程基礎和指針等。本篇主要是給沒有任何Cocos2d-x使用經驗的讀者作為鋪墊閱讀。其中,圖解指針和C++11簡介這兩章內容適閤由Unity3D(簡稱U3D)、Java或其他語言轉到Cocos2d-x的讀者閱讀。

  第2篇 基礎框架篇(第6~17章)

  本篇主要介紹瞭Cocos2d-x的核心框架係統,屬於Cocos2d-x開發必練基本功。本篇涵蓋的主要內容有節點係統、內存管理、場景和層、精靈、動作係統、播放動畫、紋理、文字顯示、運行機製、渲染機製、消息機製和Schedule等。學習完本篇,讀者可以掌握Cocos2d-x遊戲引擎的運行原理及相關開發知識。

  第3篇 UI和交互篇(第18~25章)

  本篇專門介紹瞭Cocos2d-x的各種交互手段及整個GUI架構,同基礎框架篇一樣,本篇也屬於Cocos2d-x的必練基本功。本篇涵蓋的主要內容有觸摸輸入、文本輸入、按鈕與重力感應輸入、Menu和MenuItem,以及GUI框架的功能控件、文本輸入、文本顯示及容器控件等。

  第4篇 工具鏈篇(第26~31章)

  工欲善其事必先利其器。本篇主要以CocoStudio的工具集為核心,介紹瞭常用工具的使用,解決瞭一些工具在使用過程中遇到的問題,適閤想要瞭解或學習Cocos2d-x周邊工具的讀者閱讀。本篇涵蓋的主要內容有CocoStudio的UI編輯器、場景編輯器、動畫編輯器、2.x編輯器及CocosBuilder等。

  本書閱讀建議

  由於Cocos2d-x遊戲引擎是基於C++的,所以一些基礎的C++知識是必須要知道的。假如讀者完全沒有任何編程方麵的經驗,就不適閤閱讀本書。雖然本書中也介紹瞭部分C++的相關知識,但那是有針對性的,並不是係統地介紹。所以,如果讀者沒有任何編程基礎,可以先閱讀一本類似於《C++入門很簡單》之類的圖書。雖然C++入門並不是想象的那麼簡單,但這類圖書還是可以讓你對C++建立一個係統的瞭解。

  書中部分章節的內容可能較為深入,如果讀者對這部分內容一時難以理解,則可以先跳過而閱讀後續章節,等讀完後續章節再迴頭閱讀這部分能容,也許就豁然開朗瞭。

  書中的部分例子引用自Cocos2d-x引擎自帶的TestCpp,讀者學習的過程中可以參照TestCpp中的例子。雖然本書偏重於理論,但其中介紹到的代碼還是可以在TestCpp中編寫、修改,並運行起來,從而加深理解。

  另外,切勿死記硬背。編程學習不等於應付考試,很多知識點可以現用現查,解決問題就行。讀者應該把注意力放在對編程本質的理解上。

  本書讀者對象

  零基礎學Cocos2d-x遊戲開發的人員;

  Cocos2d-x自學人員;

  想係統學習Cocos2d-x的程序員;

  想鞏固和深入理解Cocos2d-x基礎的程序員;

  想開發跨平颱手機遊戲的人員;

  從其他開發轉嚮Cocos2d-x的程序員;

  大中專院校的學生和社會培訓的學員。

  本書源代碼獲取方式

  本書涉及的源代碼大多是Cocos2d-x遊戲引擎自身的代碼。關於如何獲取Cocos2d-x遊戲引擎的完整代碼,請讀者詳細閱讀本書第1.5節中的介紹。

  本書的編寫對筆者而言是一個不小的挑戰。雖然筆者投入瞭大量的精力和時間,但隻怕百密難免一疏。若讀者在閱讀本書時發現任何疏漏,希望能及時反饋給我們,以便及時更正,以便於和作者及廣大讀者交流學習心得,解決學習中遇到的各種問題。

  最後祝各位讀者讀書快樂,學習進步!

  作者


用戶評價

評分

給同事買的,同事說不錯。好好學習,天天嚮上!

評分

非常好,喝完以後女朋友成功和我分手瞭,很好的分手禮物

評分

性比價高,是正版的,幫助很大,好評。。。

評分

Cocos 係列叢書 買來好好學習下,正好用瞭200的優惠券

評分

cocos2d入門級的好書,值得一看,入手瞭

評分

送的很快,書也很新

評分

掉價快!隻能當實例教材,是最新unity3d 4.0的實例,但真正講解unity隻占2/3。第1章介紹瞭如何安裝和簡單應用Unity。   第2章是一個太空射擊遊戲教程,這是一個入門級的教程,從如何創建一個腳本,到一個完整的遊戲有較為細緻的介紹。   第3章是一個第一人稱射擊遊戲教程,將涉及人工智能尋路、動畫控製、攝像機控製等內容。   第4章是一個塔防遊戲教程,介紹瞭創建更為復雜的關卡,導入由Excel創建的數據等。   第5章介紹瞭Unity在創建資源方麵的技巧,包括使用燈光、導入導齣模型和優化等。 後麵另外,本書最後附有C#語言的快速教程,幫助缺乏程序開發基礎的讀者快速入門。   《Unity 3D手機遊戲開發》適閤廣大遊戲開發人員,也麵嚮遊戲開發愛好者、軟件培訓機構,以及計算機專業的學生等。Unity,也稱Unity3D,是近幾年非常流行的一個3D遊戲開發引擎,它的特點是跨平颱能力強,支持PC、Mac、Linux、網頁、iOS、Android等幾乎所有的平颱,移植便捷,3D圖形性能齣眾,為眾多遊戲開發者所喜愛。在手機平颱,Unity幾乎成為3D遊戲開發的標準工具。   遊戲開發是一項復雜的工作,本書在編寫過程中十分注重與實際開發相結閤,全書通篇以實例為基礎,使讀者在較短的時間內能快速掌握Unity的各種工具和開發技巧,應用於實踐當中。   本書從內容結構上,可以分為三個部分,第一部分通過三個實例,包括太空射擊遊戲、第一人稱射擊遊戲和塔防遊戲,使讀者對Unity遊戲開發有一個較全麵的認識,達到開發一般休閑遊戲的能力。第二部分重點介紹瞭Unity在HTTP和TCP/IP網絡通信方麵的應用。第三部分專門介紹瞭如何將Unity遊戲移植到網頁、iOS和Android平颱。第6章介紹瞭Unity在HTTP網絡通信方麵的應用,還涉及瞭PHP和MySQL的基礎應用,使Unity遊戲可以與Web服務器進行通信,上傳得分記錄等。   第7章是一個完整的、基於TCP/IP協議的聊天實例,在這一章將要使用Unity創建聊天客戶端,並使用.NET開發環境創建聊天服務器端。   第8章介紹瞭如何將Unity遊戲轉為Unity 網頁遊戲和Flash遊戲,重點介紹瞭麵嚮不同網頁平颱的一些專門技術要點,如何編寫Flash插件等。啊第6~7章,重點介紹瞭Unity在網絡方麵的應用。第8~10章介紹瞭如何將Unity遊戲移植到網頁、iOS和Android平颱。另外,本書最後附有C#語言的快速教程,幫助缺乏程序開發基礎的讀者快速入門。

評分

這書還可以 有高人做序 就是內容比較基礎 適閤入門

評分

是不錯,唯一的就是起點有點高

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有