溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Cocos2d-x 3.x游戲開發(fā)之旅

發(fā)布時間:2020-07-13 23:46:13 來源:網(wǎng)絡 閱讀:975 作者:博文視點 欄目:開發(fā)技術

Cocos2d-x 3.x游戲開發(fā)之旅

鐘迪龍 著  

ISBN 978-7-121-24276-2

2014年10月出版

定價:79.00元

516

16

內(nèi)容提要

Cocos2d-x 3.x游戲開發(fā)之旅》是《Cocos2d-x游戲開發(fā)之旅》的升級版,修改了Cocos2d-x 2.0版進階到3.0版后的一些內(nèi)容,新增了對CocoStudio、UI編輯器、Cocos2d-x 3.x新特性以及網(wǎng)絡方面的知識點。主要介紹常用的API使用方式;如何通過官方Demo獲取更多關于Cocos2d-xAPI使用方法;CocoStudioCocos Code IDE基礎使用方法;通過23個游戲?qū)嵗榻BCocos2d-x在實際開發(fā)中的應用;手機網(wǎng)絡游戲開發(fā)入門;在實際的手游開發(fā)過程中遇到的問題及解決方法。

Cocos2d-x 3.x游戲開發(fā)之旅》適合Cocos2d-x初學者或者已經(jīng)學習了Cocos2d-x 2.0版本想繼續(xù)使用Cocos2d-x3.x版本開發(fā)游戲的讀者,同時也適合剛進入游戲開發(fā)行業(yè),希望了解手游開發(fā)者在實際開發(fā)中遇到的問題及解決方案的讀者。

目錄

1  開學典禮 / 1

1.1  出場人物介紹 / 1

1.2  入學要求——本書適合人群 / 2

1.3  這內(nèi)容有點糟糕——本書風格 / 2

1.4  你需要這些技能——學Cocos2d-x需要什么知識 / 3

1.5  我們?yōu)槭裁匆獙WCocos2d-x 3.0 / 4

1.6  先給我們的代碼找個溫馨的家——環(huán)境搭建 / 4

1.6.1  黑色風暴之VS2013 / 4

1.6.2  我的Cocos2d-x版本 / 5

1.6.3  我們還需要做一些準備工作 / 6

1.6.4  半自動配置環(huán)境變量 / 6

1.6.5  看看前輩們的畢業(yè)設計——運行官方Demo / 8

1.7  廣告時間——提供一些學習資源 / 10

2  不離不棄的HelloWorld / 12

2.1  簡單到無法想象——直接運行HelloWorld項目 / 12

2.2  新建Cocos2d-x項目遇到的麻煩——成功新建 一個HelloWorld / 14

2.2.1  創(chuàng)建Cocos2d-x 3.0項目 / 14

2.3  HelloWorld,沒有想象中的簡單——簡單解析HelloWorld / 16

2.3.1  HelloWorld是如何顯示到窗口的 / 16

2.3.2  場景其實不是真正的場景 / 17

2.4  實例來了 / 20

2.4.1  題外話——一個工程多個項目,避免重復編譯 / 20

2.4.2  創(chuàng)建屬于自己的HelloWorld / 23

3  我們來學習怎么爬行 / 28

3.1  環(huán)游世界——場景 / 28

3.2  一切的主宰——導演 / 29

3.2.1  加載第一個場景 / 29

3.2.2  簡單的切換場景 / 29

3.2.3  包含特效的切換場景 / 31

3.2.4  贈送的——推進和彈出場景 / 33

3.3  你走你的,我走我的——層 / 35

3.4  比對象還要可愛的對象——精靈來了 / 36

3.5  我得下命令——菜單 / 37

3.6  當個背包客——節(jié)點 / 39

3.7  Cocos2d-x 3.0新成員——Value、VectorMap / 40

3.7.1  有容乃大——Value / 41

3.7.2  給我排好隊——Vector / 42

3.7.3  對號入座——Map / 44

3.7.4  Value的超能力——整數(shù)、浮點數(shù)、字符串之間的轉(zhuǎn)換 / 46

4  我們來學習怎么走路 / 47

4.1  吉他獨奏《天空之城》——播放聲音 / 47

4.2  控件篇1——我最愛的九妹和按鈕事件 / 48

4.2.1  你好,九妹——可拉伸圖片 / 48

4.2.2  解決使用extensions庫時編譯報錯的問題 / 49

4.2.3  九妹和按鈕搭配 / 51

4.3  可視化的世界——CocoStudio UI編輯器 / 53

本節(jié)實例源代碼為:Chapter4_2_Scale9Sprite / 53

4.3.1  還在用代碼寫UI?你傻了吧 / 53

4.3.2  只需要拖動——UI編輯器初探 / 54

4.3.3  更豐富的UI——導入圖片資源 / 56

4.3.4  更豐富的UI——導出最終文件 / 58

4.3.5  展示成果——在游戲中加載UI / 59

4.3.6  我要互動——按鈕監(jiān)聽事件 / 62

4.4  番外篇——CocoStudio UI編輯器進階功能 / 65

4.4.1  要死、要死、要死了之血量條 / 65

4.4.2  我要藏起來之滑動層 / 68

5  我們來學習怎么打架 / 72

5.1  動作講解1——簡簡單單的運動 / 72

5.1.1  你想去哪,你想走多遠——MoveToMoveBy / 72

5.1.2  我要減肥——ScaleToScaleBy / 74

5.1.3  卡牌翻轉(zhuǎn)特效——用ScaleTo就可以實現(xiàn) / 77

5.1.4  閃亮登場——Blink / 77

5.2  動作講解2——更復雜的運動 / 79

5.2.1  我要你按照我的路線走——BezierToBezierBy / 79

5.2.2  我沒讓你停,重復動作——RepeatForever / 81

5.2.3  動作一起做,一邊走一邊轉(zhuǎn)一邊跳——SequenceSpawn / 82

5.3  動作講解3——動作監(jiān)聽 / 84

5.3.1  小若,到家了告訴我一聲——動作結束監(jiān)聽 / 84

5.3.2  更方便的函數(shù)回調(diào)——lambda / 85

5.3.3  動作家族族譜 / 88

5.4  屏幕觸摸事件 / 89

5.4.1  屏幕事件初探 / 89

5.4.2  單點觸摸——截斷事件,一個對象的壟斷 / 91

5.4.3  多點觸摸——太弱了,一起上吧 / 94

6  是時候跑起來了——《LittleRunner/ 99

6.1  這是一個什么游戲 / 99

6.2  找個主角回來——創(chuàng)建主角精靈 / 100

6.2.1  創(chuàng)建篩選器 / 100

6.2.2  創(chuàng)建實體基類 / 101

6.2.3  創(chuàng)建主角類 / 102

6.2.4  創(chuàng)建游戲場景 / 103

6.2.5  修改游戲窗口大小 / 106

6.3  其實她不想跑——創(chuàng)建無限滾動地圖 / 107

6.3.1  每一幀都可以操作——scheduleUpdate初探 / 107

6.3.2  翻滾吧,地圖——地圖無限滾動 / 109

6.4  開心的時候——讓主角跳起來 / 111

6.4.1  Button的應用——創(chuàng)建跳躍按鈕 / 111

6.4.2  JumpBy的應用——給主角添加跳躍動作 / 112

6.5  金錢誘惑——加入怪物 / 114

6.5.1  怪物誕生 / 114

6.5.2  怪物巢穴——創(chuàng)建怪物管理器 / 116

6.5.3  貪婪的主角——怪物碰撞檢測 / 119

6.5.4  怪物碰不到主角——使用組合的小麻煩 / 122

6.5.5  疼了就退后——增加主角受傷時的動作 / 123

6.6  監(jiān)控一切——創(chuàng)建分數(shù)標簽、血量條等屬性對象 / 125

7  精靈來了第二季 / 129

7.1  一大波精靈來襲——大量精靈單獨繪制的缺陷 / 129

7.1.1  2.0的回憶——大量繪制精靈的尷尬 / 129

7.1.2  3.0新功能——Auto-batching / 130

7.1.3  沒有完美的事物——Auto-batching“駕馭手冊” / 131

7.1.4  誰先上的問題——setGlobalZOrder、setLocalZOrder、setOrderOfArrival / 134

7.1.5  附贈甜品——Auto-batching源碼級深入分析 / 138

7.2  把相同的精靈裝上車——使用SpriteBatchNode優(yōu)化繪制 / 144

7.2.1  一次渲染——SpriteBatchNode的特別之處 / 144

7.2.2  什么是紋理——Texture簡單解說 / 146

7.3  遇到不同的精靈怎么辦——TexturePacker工具使用 / 147

7.3.1  同一張圖片,同一個紋理 / 148

7.3.2  將多張圖片打包到一起 / 149

7.3.3  加載打包后的圖片 / 151

7.4  是動畫,不是動作——Animation / 152

7.4.1  用打包前的圖片創(chuàng)建動畫 / 152

7.4.2  用打包后的圖片創(chuàng)建動畫 / 154

7.4.3  額外贈送——動畫創(chuàng)建輔助類 / 156

8  游戲?qū)嵗杜芘芘堋?/span> / 160

8.1  更豐富的世界——使用Tiled地圖 / 160

8.1.1  世界誕生——創(chuàng)建跑步場景 / 160

8.1.2  Tiled地圖來了——使用Tiled Map Editor創(chuàng)建地圖文件 / 162

8.1.3  你報錯了嗎——Tiled Editor常見路徑錯誤 / 163

8.2  嘿,培養(yǎng)新人——創(chuàng)建新的主角 / 164

8.2.1  主角誕生——創(chuàng)建實體類和主角類 / 164

8.2.2  固定主角出生點——對象層的使用 / 167

8.2.3  讓主角跑——添加主角動畫 / 169

8.3  更智能的主角——添加角色控制器 / 170

8.3.1  創(chuàng)建控制器基類 / 170

8.3.2  帶著它就能跑——主角移動控制器 / 172

8.3.3  焦點是主角——讓地圖隨著主角滾動 / 175

8.4  更多的內(nèi)容 / 178

8.4.1  讓主角上下移動——三方移動控制器 / 178

8.4.2  添加障礙物——Tiled障礙層的使用 / 181

8.4.3  添加能吃的物品以及勝利條件 / 187

9  用多線程做定時器?你瘋了——schedule很強大 / 191

9.1  我愛單線程——schedule介紹 / 191

9.2  每一幀都有我——scheduleUpdateupdate / 191

9.3  定時器可以這么做——schedule和回調(diào)函數(shù) / 193

9.3.1  不調(diào)用update函數(shù),調(diào)用自己的函數(shù) / 193

9.3.2  真正的定時器 / 194

9.4  讓一切都停下來——unSchedule / 195

9.5  觸發(fā)器可以這么做——scheduleOnce和回調(diào)函數(shù) / 197

9.6  準確的計時功能——制作定時器 / 198

9.6.1  schedule并沒有那么準時——越走越慢的時間 / 198

9.6.2  更準確地計時——不會變慢的時間 / 200

9.6.3  制作***——方便的定時回調(diào)功能封裝 / 203

9.7  額外贈送,我總是很關注我暗戀的女孩——觀察者模式 / 205

9.7.1  你喜歡誰?我?guī)湍懔粢狻^察者模式掃盲 / 205

9.7.2  Cocos2d-x提供的觀察者模式工具類——NotificationCenter / 206

9.7.3  addObserverpostNotification函數(shù)傳遞數(shù)據(jù)的區(qū)別 / 209

9.7.4  額外贈送——自己實現(xiàn)簡單的觀察者 / 211

10  野外生存訓練 / 216

10.1  師父走了,你怎么辦——學會查看官方Demo / 216

10.2  遲早都要學會——學習查看Demo源代碼 / 217

10.3  別忘了開源——學習查看Cocos2d-x源代碼 / 218

10.3.1  為什么addObserverpostNotification不能同時傳遞數(shù)據(jù) / 218

10.4  物競天擇,沒用的就要被淘汰——retainrelease / 221

10.4.1  為什么會有retain / 221

10.4.2  真正的兇手autoRelease / 222

10.4.3  看代碼實際點 / 222

10.4.4  原理來了 / 224

10.4.5  實際情況 / 225

10.4.6  到底什么時候要retain / 225

10.5  什么?你忘了保存記憶?我們一起十年了啊——保存數(shù)據(jù) / 226

10.6  我能擺脫編譯的噩夢——讀取Csv配置文件 / 227

10.6.1  什么是Csv文件——Csv格式文件掃盲 / 228

10.6.2  如何創(chuàng)建一個Csv文件 / 228

10.6.3  預熱——編寫字符串工具類 / 229

10.6.4  一切都是對象——Csv文件對象類 / 231

10.6.5  進入主題——編寫Csv文件讀取工具類 / 233

10.7  再給編譯噩夢粉碎一擊——更方便擴展的JSON / 238

10.7.1  JSON又是什么——基礎掃盲 / 238

10.7.2  拿好你的武器——導入JsonCpp解析庫 / 239

10.7.3  就是這么簡單——讀取JSON文件 / 241

10.7.4  進階挑戰(zhàn)——讀取嵌套結構的JSON文件 / 242

10.7.5  進階挑戰(zhàn)——讀取數(shù)組結構的JSON文件 / 243

10.7.6  進階挑戰(zhàn)——輸出JSON文件 / 244

11  睡覺的時候不要吃東西——有限狀態(tài)機 / 247

11.1  5分鐘告訴你什么是有限狀態(tài)機 / 247

11.1.1  簡單認識 / 247

11.1.2  一個很“好玩”的游戲 / 247

11.1.3  實現(xiàn)簡單有限狀態(tài)機的類 / 248

11.2  狀態(tài)模式之我很胖但我很強 / 251

11.2.1  什么是狀態(tài)模式 / 251

11.2.2  用狀態(tài)模式實現(xiàn)有限狀態(tài)機 / 252

11.3  真正的狀態(tài)機來了 / 258

11.3.1  創(chuàng)建狀態(tài)機類 / 258

11.3.2  被釋放的木頭類 / 260

11.4  事件驅(qū)動,你想象不到的強大 / 263

11.4.1  徹底拋棄update函數(shù)——新的狀態(tài)機類 / 263

11.4.2  更智能的狀態(tài)類 / 266

11.4.3  見證新的運作情況 / 267

12  我比Csv更厲害——強大的Lua / 269

12.1  LuaC++牽手 / 269

12.1.1  Lua的堆棧和全局表 / 269

12.1.2  LuaC++的第一次通信 / 269

12.2  Demo講解之LuaC++牽手 / 270

12.2.1  引入Lua / 271

12.2.2  開始使用 / 272

12.2.3  執(zhí)行Lua腳本 / 273

12.2.4  重置棧頂索引,將全局變量放到堆棧中 / 274

12.2.5  最后一步,C++取得字符串 / 274

12.3  簡單解析Lua的堆棧 / 276

12.4  來點高難度的,獲取Lua表結構的數(shù)據(jù) / 276

12.4.1  什么是table / 277

12.4.2  獲取table變量 / 277

12.4.3  lua_gettable函數(shù) / 277

12.5  C++調(diào)用Lua函數(shù) / 280

12.6  Lua調(diào)用C++的函數(shù) / 281

13  自力更生——自己寫一個UI模塊 / 285

13.1  剛開始必須要輕松一下——UI模塊思路簡介 / 285

13.1.1  它能為我們做些什么——UI模塊包含的功能 / 285

13.1.2  一覽眾山小——UI模塊設計思路圖 / 286

13.2  XML文件和屬性模塊 / 287

13.2.1  一切的源頭——UIXML配置文件 / 287

13.2.2  知識補充1——TinyXML介紹 / 289

13.2.3  知識補充2——TinyXMLHelloWorld / 289

13.2.4  知識補充3——用TinyXML讀取UI模塊的XML配置文件 / 292

13.2.5  封裝,我們要記住封裝——XML標簽節(jié)點對象 / 296

13.2.6  我負責保存,你負責修飾——XML標簽節(jié)點屬性設置器 / 302

13.3  嘗點甜頭——創(chuàng)建控件 / 305

13.4  主角來了——組件 / 308

13.4.1  控件基類——MMBase / 308

13.4.2  普通窗口控件——MMNormalWin / 309

13.4.3  標簽控件——MMLabel / 311

13.4.4  甜點來了——測試新的控件類 / 312

13.5  控件管理模塊 / 314

13.5.1  我是老大——MMWinManager控件管理器 / 314

13.5.2  我是先鋒——MMWinSystem控件系統(tǒng) / 318

13.5.3  我是前臺——MMWinDesktop控件頂層桌面 / 321

13.6  控件工廠 / 322

13.6.1  抽象工廠之MMWinBaseFactory / 322

13.6.2  控件工廠之MMWinFactory / 323

13.6.3  裝飾工廠之MMWinProperityFactory / 324

13.6.4  最后的事情——運行項目 / 326

14  傾情奉獻——因為偷懶而誕生的《卡牌塔防》游戲(上篇)/ 329

14.1  開篇——最后的游戲?qū)嵗?/span> / 329

14.1.1  為什么是塔防游戲 / 329

14.1.2 《卡牌塔防》功能簡介——我們能學到哪些知識 / 329

14.2  啟程——關卡編輯器 / 330

14.2.1  一個英雄一個坑——炮臺坐標編輯器 / 331

14.2.2  按照我給的路徑走——怪物坐標編輯器 / 348

14.2.3  添加更多方便的操作 / 356

14.3  磨刀不誤砍柴工——預備知識 / 361

14.3.1  導演的助手——場景管理器 / 361

14.3.2  數(shù)據(jù)讀取模塊 / 364

14.3.3  全局參數(shù) / 365

14.3.4  請說英文好嗎?不,說中文——I18N工具類 / 366

15  傾情奉獻——因為偷懶而誕生的《卡牌塔防》游戲(下篇)/ 372

15.1  英雄誕生 / 372

15.1.1  創(chuàng)建關卡場景 / 372

15.1.2  地圖層 / 373

15.1.3  實體基類 / 375

15.1.4  英雄管理器1——炮臺對象 / 378

15.1.5  英雄管理器2——英雄對象 / 382

15.1.6  英雄管理器3——炮臺和英雄的關系 / 386

15.1.7  英雄管理器4——加入創(chuàng)建英雄的功能 / 387

15.2  怪物來襲 / 389

15.2.1  怪物管理器 / 389

15.2.2  移動控制器1——控制器基類 / 394

15.2.3  移動控制器2——移動控制器基類 / 394

15.2.4  移動控制器3——按指定坐標列表移動 / 396

15.2.5  怪物來了 / 400

15.3  英雄進攻 / 404

15.3.1  英雄的一次***流程 / 404

15.3.2  Hero里獲取怪物列表 / 405

15.3.3  查找并鎖定***目標 / 406

15.3.4  英雄的*** / 407

15.3.5  ***管理器1——***類 / 409

15.3.6  ***管理器2——***管理器 / 413

15.3.7  ***管理器3——英雄開始發(fā)射*** / 416

15.4  華麗的裝飾 / 417

15.4.1  怪物血量條 / 417

15.4.2  炮臺操作按鈕——英雄華麗升級 / 419

15.4.3  怪物起點和終點魔法臺 / 425

16  傾情奉獻——因為偷懶而誕生的《卡牌塔防》游戲(終結篇)/ 428

16.1  關卡信息UI / 428

16.1.1  利用UI編輯器制作關卡信息面板 / 428

16.1.2  關卡信息數(shù)據(jù)刷新——NotificationCenter的應用 / 431

16.1.3  怪物數(shù)量刷新 / 435

16.1.4  怪物安息——怪物死亡后塔魂數(shù)量刷新 / 435

16.1.5  堡壘安息——怪物到達堡壘后扣除魔力值 / 436

16.1.6  打怪升級——英雄升級扣除塔魂 / 438

16.2  謝幕 / 439

16.2.1  關卡選擇——根據(jù)關卡數(shù)加載游戲 / 439

16.2.2  勝利條件判斷 / 443

16.2.3  失敗條件判斷 / 446

16.3  移植游戲到Android平臺 / 447

16.3.1  傻瓜式的Android環(huán)境搭建1——準備工作 / 447

16.3.2  傻瓜式的Android環(huán)境搭建2——解壓和安裝 / 448

16.3.3  傻瓜式的Android環(huán)境搭建3——測試一下吧 / 451

16.3.4  準備工作——導入Android項目 / 453

16.3.5  一勞永逸——修改Android.mk文件 / 455

16.3.6  開始編譯——build_native.py文件 / 458

17  我不要一個人玩游戲——網(wǎng)絡游戲入門 / 460

17.1  只能給你一塊敲門磚——本章帶給大家的內(nèi)容 / 460

17.2  左手畫方右手畫圓——多線程 / 461

17.3  從最簡單的開始——從建立連接到接收數(shù)據(jù) / 464

17.3.1  偷偷和別人連接——使用ODSocket服務器建立連接 / 465

17.3.2  不務正業(yè)——編寫一個測試服務端 / 467

17.3.3  言歸正傳——編寫我們的Cocos2d-x客戶端 / 469

17.4  你得真的像個網(wǎng)游——服務端與客戶端交互邏輯 / 471

17.4.1  逃避多線程——更安全的數(shù)據(jù)接收處理 / 471

17.4.2  進入游戲——服務端通知客戶端進入游戲場景 / 476

17.4.3  更多的人——請求在線人數(shù),添加所有玩家到場景中 / 480

17.4.4  新人要報到——有新玩家加入,通知已在線玩家 / 484

18  額外的一些東西 / 486

18.1  常見錯誤及解決方案 / 486

18.1.1  調(diào)用可變參數(shù)函數(shù)時,總是莫名報錯 / 486

18.1.2  無法解析的外部符號(或命令) / 486

18.1.3  Android移植編譯報錯——undefined reference to / 487

18.1.4  Label變成了一個黑塊——多線程引起的Bug / 487

18.1.5  中斷窗口 / 487

18.1.6  重復切換場景后無端報錯 / 488

18.2  游戲發(fā)布流程(概述) / 489

18.2.1  給游戲加入廣告SDK / 489

18.2.2  加入統(tǒng)計SDK / 490

18.2.3  上傳游戲到各個市場 / 491

18.3  未來的趨勢 / 492

18.3.1  云后端服務 / 492

18.3.2  社交SDK / 492

18.3.3  Cocos Code IDE / 493

18.3.4  CocoStudio / 493

18.4  安全意識 / 493

18.4.1  加密的數(shù)據(jù)類型,拒絕游戲修改器 / 494

18.4.2  防止打包黨的一些小技巧 / 495

18.5  游戲開發(fā)思維 / 497

18.5.1  不管游戲多快,一幀就是一幀,我們能做很多事情 / 497

18.5.2  隨機應變,利用不經(jīng)意的Bug創(chuàng)造更多玩法 / 497

18.6  最后的最后 / 498

18.6.1  最快速找到木頭的方式 / 498

18.6.2  給讀者的驚喜——丁小若寄語 / 499

18.6.3  請?zhí)峁┠愕囊庖姾湍惆l(fā)現(xiàn)的Bug / 499

前言

2.03.0時代

我第一次接觸Cocos2d-x的時候,它剛好發(fā)布了2.0版本,開始從1.x時代跨越到2.x時代。當時我還很慶幸,因為2.x相比1.x做出了很大的改動,而我,無須體驗這種改動所帶來的“怨念”。

一年前,我費盡心思所寫的《Cocos2d-x游戲開發(fā)之旅》出版了,當時還是Cocos2d-x2.0時代。有讀者喜歡它的風格,也有讀者討厭它的嘮叨,不管如何,它似乎幫助了不少讀者入了Cocos2d-x的門。

然而,一年以來,Cocos2d-x 3.0版本漸漸浮出水面,我們要迎來3.0時代了,我有幸再一次見證了這種跨越時代的時刻。3.0終將替代2.0,為此,才有了這本《Cocos2d-x 3.x游戲開發(fā)之旅》。

這不是全新的內(nèi)容

本書主要目的是把2.0的內(nèi)容升級為3.0版本,并不是重新寫一本書,大部分內(nèi)容結構是一樣的,從目錄中就可以看出來。如果說,這是一本全新的、內(nèi)容完全不一樣的書,那我可能就變成了一個專門寫書的騙子了。在編寫2.0版本的書時,我已經(jīng)把我?guī)啄晁e累的知識都花光了?,F(xiàn)在僅僅是過了一年時間,我這一年時間的積累,還不足以寫成一本全新的書。

所以,我特意在前言部分把這個情況說清楚,避免和讀者之間造成不必要的誤會。

當然,即使僅僅是內(nèi)容的升級,我也花費了很多心血,一句句代碼的檢查、修改、優(yōu)化,一行行文字的調(diào)整、修改、新增,并且加入了一些3.0特有的新內(nèi)容,新增了網(wǎng)絡游戲、廣告接入、游戲發(fā)布等方面的內(nèi)容。

我不想再“生”了

一年前,編寫完2.0版本的書時,我累趴了,寫書比想象中累多了。那時我就告訴自己,“我這輩子再也不寫書了!”,就像一位媽媽剛生完孩子一樣,完全沒有繼續(xù)生下一個的勇氣了。

然而,和所有的媽媽一樣,時間長了,就忘記了痛苦,只記住了孩子帶來的歡樂。我也不知道是什么原因讓我決定寫這本書,也許是太多讀者和我抱怨說之前的書版本太舊了。于是,這本Cocos2d-x 3.x的書就這樣誕生了。而我現(xiàn)在,依舊很想說一句,我這輩子再也不寫書了!呵呵,也許這是傾盡全力完成一件事情之后,一種興奮和滿意的咆哮。

那么,希望本書能繼續(xù)讓各位初學者快樂地開啟游戲開發(fā)之旅。

本書主要內(nèi)容

本書共18章,如果讀者沒有Cocos2d-x的使用經(jīng)驗,建議從第1章開始閱讀。對于有Cocos2d-x基礎的讀者,我為大家列出了各個章節(jié)的主要內(nèi)容,供讀者參考。

1章:簡單介紹本書寫作理念、Cocos2d-x3.0環(huán)境搭建和推薦的一些學習資源。

23章:介紹Cocos2d-x 3.0的最基本知識、基本結構。

46章:介紹CocoStudio UI編輯器的使用、動作以及屏幕觸摸事件的使用,通過一個簡單的游戲?qū)嵗龑⑶懊嬲鹿?jié)的內(nèi)容串聯(lián)起來。

710章:對Cocos2d-x 3.0更高階的內(nèi)容進行介紹,包括渲染效率的提高、動畫、TexturePacker圖片打包、Tiled地圖游戲?qū)嵗?、定時器、消息派發(fā)、函數(shù)回調(diào)、內(nèi)存管理、數(shù)據(jù)保存、Csv文件讀取、JSON文件讀/寫。

1112章:介紹LuaC++通信的知識、有限狀態(tài)機的基礎知識和應用。

13章:分享我自己開發(fā)的基于Cocos2d-x3.0的自定義UI模塊,詳細介紹自定義UI模塊的設計思路和實現(xiàn)過程。

1416章:詳細講解本書最后一個游戲?qū)嵗犊ㄅ扑馈?,該游戲使用了本書介紹的大部分知識。作為本書的最后一個實例,用了三章的篇幅詳細地介紹游戲的思路、框架搭建、功能實現(xiàn)的過程。

17章:介紹網(wǎng)游游戲開發(fā)的基本流程,編寫能和服務端進行命令交互的客戶端。

18章:分享我曾經(jīng)遇到的錯誤和解決方案,介紹游戲發(fā)布、廣告接入、安全等方面的知識。

2.0版本一書的不同之處

也許有些讀者已經(jīng)買過2.0版本的《Cocos2d-x游戲開發(fā)之旅》,這里列出本書與2.0版本一書的不同之處,方便讀者參考:

1.所有代碼均升級為3.0版本。

2.刪除部分已過時的內(nèi)容,對原有內(nèi)容進行升級優(yōu)化。

3.增加Value、VectorMap、3.0觸摸機制、lambda函數(shù)、Auto-Batching3.0新特性的內(nèi)容講解。

4.增加JSON、CocoStudio UI編輯器、網(wǎng)絡游戲等內(nèi)容講解。

5.增加游戲發(fā)布流程、未來趨勢、安全處理的內(nèi)容。

致謝

我想,這次我最應該感謝的,是那些認可我的讀者,那些能看懂書中幽默風格的讀者。是你們讓我知道,我不是一個“精神病人”。

最后,我想感謝我的家人,家人給我的不僅僅是支持,而是一個完整的開心的家庭。并且,我不得不再一次感謝的,就是本書的旁白丁小若,感謝她愿意授予我使用她名字的權限,感謝她給予我幽默的靈感。

謹以此書獻給我可愛的家人和朋友們。

由于水平有限,書中難免有錯誤之處,希望讀者朋友多指正。也歡迎大家到我的博客就書中的問題與我互動。

 

鐘迪龍

2014.08.05

 

 

Cocos2d-x 3.x游戲開發(fā)之旅

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI