-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Cocos2d-x 3.x游戲開發之旅

( 簡體 字)
作者:鐘迪龍類別:1. -> 程式設計 -> 手機程式 -> Cocos2d
譯者:
出版社:電子工業出版社Cocos2d-x 3.x游戲開發之旅 3dWoo書號: 39568
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:10/1/2014
頁數:516
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121242762
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

從2.0到3.0時代
我第一次接觸Cocos2d-x的時候,它剛好發布了2.0版本,開始從1.x時代跨越到2.x時代。當時我還很慶幸,因為2.x相比1.x做出了很大的改動,而我,無須體驗這種改動所帶來的“怨念”。
一年前,我費盡心思所寫的《Cocos2d-x游戲開發之旅》出版了,當時還是Cocos2d-x 2.0時代。有讀者喜歡它的風格,也有讀者討厭它的嘮叨,不管如何,它似乎幫助了不少讀者進入了Cocos2d-x的門。
然而,一年以來,Cocos2d-x 3.0版本漸漸浮出水面,我們要迎來3.0時代了,我有幸再一次見證這種跨越時代的時刻。3.0終將替代2.0,為此,才有了這本《Cocos2d-x 3.x游戲開發之旅》。
這不是全新的內容
本書主要目的是把2.0的內容升級為3.0版本,并不是重新寫一本書,大部分內容結構是一樣的,從目錄中就可以看出來。如果說,這是一本全新的、內容完全不一樣的書,那我可能就變成了一個專門寫書的騙子了。在編寫2.0版本的書時,我已經把我幾年所積累的知識都花光了。現在僅僅是過了一年時間,我這一年時間的積累,還不足以寫成一本全新的書。
所以,我特意在前言部分把這個情況說清楚,避免和讀者之間造成不必要的誤會。
當然,即使僅僅是內容的升級,我也花費了很多心血,一句句代碼的檢查、修改、優化,一行行文字的調整、修改、新增。并且加入了一些3.0特有的新內容,新增了網絡游戲、廣告接入、游戲發布等方面的內容。
我不想再“生”了
一年前,編寫完2.0版本的書時,我累趴了,寫書比想象中累多了。那時我就告訴自己,“我這輩子再也不寫書了!”,就像一位媽媽剛生完孩子一樣,完全沒有繼續生下一個的勇氣了。
然而,和所有的媽媽一樣,時間長了,就忘記了痛苦,只記住了孩子帶來的歡樂。我也不知道是什么原因讓我決定寫這本書,也許是太多讀者和我抱怨說之前的書版本太舊了。于是,這本Cocos2d-x 3.x的書就這樣誕生了。而我現在,依舊很想說一句,我這輩子再也不寫書了!呵呵,也許這是親盡全力完成一件事情之后,一種興奮和滿意的咆哮。
那么,希望本書能繼續讓各位初學者快樂地開啟游戲開發之旅。
本書主要內容
本書共18章,如果讀者沒有Cocos2d-x的使用經驗,建議從第1章開始閱讀。對于有Cocos2d-x基礎的讀者,我為大家列出了各個章節的主要內容,供讀者參考。
第1章:簡單介紹本書寫作理念、Cocos2d-x 3.0環境搭建和推薦的一些學習資源。
第2∼3章:介紹Cocos2d-x3.0的最基本知識、基本結構。
第4∼6章:介紹Cocostudio UI編輯器的使用、動作以及屏幕觸摸事件的使用,通過一個簡單的游戲實例將前面章節的內容串聯起來。
第7∼10章:對Cocos2d-x3.0更高階的內容進行介紹,包括渲染效率的提高、動畫、TexturePacker圖片打包、Tiled地圖游戲實例、定時器、消息派發、函數回調、內存管理、數據保存、Csv文件讀取、JSON文件讀/寫。
第11∼12章:介紹Lua和C++通信的知識、有限狀態機的基礎知識和應用。
第13章:分享我自己開發的基于Cocos2d-x 3.0的自定義UI模塊,詳細介紹自定義UI模塊的設計思路和實現過程。
第14∼16章:詳細講解本書最后一個游戲實例《卡牌塔防》,該游戲使用了本書介紹的大部分知識。作為本書的最后一個實例,用了三章的篇幅詳細地介紹游戲的思路、框架搭建、功能實現的過程。
第17章:介紹網游游戲開發的基本流程,編寫能和服務端進行命令交互的客戶端。
第18章:分享我曾經遇到的錯誤和解決方案,介紹游戲發布、廣告接入、安全等方面的知識。
與2.0版本一書的不同之處
也許有些讀者已經買過2.0版本的Cocos2d-x游戲開發之旅,這里列出本書與2.0版本一書的不同之處,方便讀者參考:
1.所有代碼均升級為3.0版本。
2.刪除部分已過時的內容,對原有內容進行升級優化。
3.增加Value、Vector、Map、3.0觸摸機制、lambda函數、Auto-Batching等3.0新特性的內容講解。
4.增加JSON、Cocostudio UI編輯器、網絡游戲等內容講解。
5.增加游戲發布流程、未來趨勢、安全處理的內容。
致謝
我想,這次我最應該感謝的,是那些認可我的讀者,那些能看懂書中幽默風格的讀者。是你們讓我知道,我不是一個“精神病人”。
最后,我想感謝我的家人,家人給我的不僅僅是支持,而是一個完整的開心的家庭。并且,我不得不再一次感謝的,就是本書的旁白丁小若,感謝她愿意授予我使用她名字的權限,感謝她給予我幽默的靈感。
謹以此書獻給我可愛的家人和朋友們。

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

鐘迪龍
2014.08.05
內容簡介:

本書是《Cocos2d-x 游戲開發之旅》的升級版,修改了2.0版進階到3.0版后的一些內容,新增了對CocoStudio、UI編輯器、Cocos2d-x 3.0新特性以及網絡方面的知識點。主要介紹常用的API使用方式;介紹如何通過官方Demo獲取更多關于Cocos2d-x的API使用方法;介紹CocoStudio和Cocos Code IDE基礎使用方法;通過2到3個游戲實例介紹Cocos2d-x在實際開發中的應用;手機網絡游戲開發入門;介紹在實際的手游開發過程中遇到的問題以及解決方法。

目錄:

第1章 開學典禮 / 1
1.1 出場人物介紹 / 1
1.2 入學要求——本書適合人群 / 2
1.3 這內容有點糟糕——本書風格 / 2
1.4 你需要這些技能——學Cocos2d-x需要什么知識 / 3
1.5 我們為什么要學Cocos2d-x 3.0 / 4
1.6 先給我們的代碼找個溫馨的家——環境搭建 / 4
1.6.1 黑色風暴之VS2013 / 4
1.6.2 我的Cocos2d-x版本 / 5
1.6.3 我們還需要做一些準備工作 / 6
1.6.4 半自動配置環境變量 / 6
1.6.5 看看前輩們的畢業設計——運行官方Demo / 8
1.7 廣告時間——提供一些學習資源 / 10
第2章 不離不棄的HelloWorld / 12
2.1 簡單到無法想象——直接運行HelloWorld項目 / 12
2.2 新建Cocos2d-x項目遇到的麻煩——成功新建一個HelloWorld / 14
2.2.1 創建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 創建屬于自己的HelloWorld / 23
第3章 我們來學習怎么爬行 / 28
3.1 環游世界——場景 / 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 當個背包客——節點 / 39
3.7 Cocos2d-x 3.0新成員——Value、Vector、Map / 40
3.7.1 有容乃大——Value / 41
3.7.2 給我排好隊——Vector / 42
3.7.3 對號入座——Map / 44
3.7.4 Value的超能力——整數、浮點數、字符串之間的轉換 / 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
本節實例源代碼為: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 我要互動——按鈕監聽事件 / 62
4.4 番外篇——CocoStudio UI編輯器進階功能 / 65
4.4.1 要死、要死、要死了之血量條 / 65
4.4.2 我要藏起來之滑動層 / 68
第5章 我們來學習怎么打架 / 72
5.1 動作講解1——簡簡單單的運動 / 72
5.1.1 你想去哪,你想走多遠——MoveTo和MoveBy / 72
5.1.2 我要減肥——ScaleTo和ScaleBy / 74
5.1.3 卡牌翻轉特效——用ScaleTo就可以實現 / 77
5.1.4 閃亮登場——Blink / 77
5.2 動作講解2——更復雜的運動 / 79
5.2.1 我要你按照我的路線走——BezierTo和BezierBy / 79
5.2.2 我沒讓你停,重復動作——RepeatForever / 81
5.2.3 動作一起做,一邊走一邊轉一邊跳——Sequence與Spawn / 82
5.3 動作講解3——動作監聽 / 84
5.3.1 小若,到家了告訴我一聲——動作結束監聽 / 84
5.3.2 更方便的函數回調——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 找個主角回來——創建主角精靈 / 100
6.2.1 創建篩選器 / 100
6.2.2 創建實體基類 / 101
6.2.3 創建主角類 / 102
6.2.4 創建游戲場景 / 103
6.2.5 修改游戲窗口大小 / 106
6.3 其實她不想跑——創建無限滾動地圖 / 107
6.3.1 每一幀都可以操作——scheduleUpdate初探 / 107
6.3.2 翻滾吧,地圖——地圖無限滾動 / 109
6.4 開心的時候——讓主角跳起來 / 111
6.4.1 Button的應用——創建跳躍按鈕 / 111
6.4.2 JumpBy的應用——給主角添加跳躍動作 / 112
6.5 金錢誘惑——加入怪物 / 114
6.5.1 怪物誕生 / 114
6.5.2 怪物巢穴——創建怪物管理器 / 116
6.5.3 貪婪的主角——怪物碰撞檢測 / 119
6.5.4 怪物碰不到主角——使用組合的小麻煩 / 122
6.5.5 疼了就退后——增加主角受傷時的動作 / 123
6.6 監控一切——創建分數標簽、血量條等屬性對象 / 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優化繪制 / 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 用打包前的圖片創建動畫 / 152
7.4.2 用打包后的圖片創建動畫 / 154
7.4.3 額外贈送——動畫創建輔助類 / 156
第8章 游戲實例之《跑跑跑》 / 160
8.1 更豐富的世界——使用Tiled地圖 / 160
8.1.1 世界誕生——創建跑步場景 / 160
8.1.2 Tiled地圖來了——使用Tiled Map Editor創建地圖文件 / 162
8.1.3 你報錯了嗎——Tiled Editor常見路徑錯誤 / 163
8.2 嘿,培養新人——創建新的主角 / 164
8.2.1 主角誕生——創建實體類和主角類 / 164
8.2.2 固定主角出生點——對象層的使用 / 167
8.2.3 讓主角跑——添加主角動畫 / 169
8.3 更智能的主角——添加角色控制器 / 170
8.3.1 創建控制器基類 / 170
8.3.2 帶著它就能跑——主角移動控制器 / 172
8.3.3 焦點是主角——讓地圖隨著主角滾動 / 175
8.4 更多的內容 / 178
8.4.1 讓主角上下移動——三方移動控制器 / 178
8.4.2 添加障礙物——Tiled障礙層的使用 / 181
8.4.3 添加能吃的物品以及勝利條件 / 187
第9章 用多線程做定時器?你瘋了——schedule很強大 / 191
9.1 我愛單線程——schedule介紹 / 191
9.2 每一幀都有我——scheduleUpdate和update / 191
9.3 定時器可以這么做——schedule和回調函數 / 193
9.3.1 不調用update函數,調用自己的函數 / 193
9.3.2 真正的定時器 / 194
9.4 讓一切都停下來——unSchedule / 195
9.5 觸發器可以這么做——scheduleOnce和回調函數 / 197
9.6 準確的計時功能——制作定時器 / 198
9.6.1 schedule并沒有那么準時——越走越慢的時間 / 198
9.6.2 更準確地計時——不會變慢的時間 / 200
9.6.3 制作定時炸彈——方便的定時回調功能封裝 / 203
9.7 額外贈送,我總是很關注我暗戀的女孩——觀察者模式 / 205
9.7.1 你喜歡誰?我幫你留意——觀察者模式掃盲 / 205
9.7.2 Cocos2d-x提供的觀察者模式工具類——NotificationCenter / 206
9.7.3 addObserver和postNotification函數傳遞數據的區別 / 209
9.7.4 額外贈送——自己實現簡單的觀察者 / 211
第10章 野外生存訓練 / 216
10.1 師父走了,你怎么辦——學會查看官方Demo / 216
10.2 遲早都要學會——學習查看Demo源代碼 / 217
10.3 別忘了開源——學習查看Cocos2d-x源代碼 / 218
10.3.1 為什么addObserver和postNotification不能同時傳遞數據 / 218
10.4 物競天擇,沒用的就要被淘汰——retain和release / 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 什么?你忘了保存記憶?我們一起十年了啊——保存數據 / 226
10.6 我能擺脫編譯的噩夢——讀取Csv配置文件 / 227
10.6.1 什么是Csv文件——Csv格式文件掃盲 / 228
10.6.2 如何創建一個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 進階挑戰——讀取嵌套結構的JSON文件 / 242
10.7.5 進階挑戰——讀取數組結構的JSON文件 / 243
10.7.6 進階挑戰——輸出JSON文件 / 244
第11章 睡覺的時候不要吃東西——有限狀態機 / 247
11.1 花5分鐘告訴你什么是有限狀態機 / 247
11.1.1 簡單認識 / 247
11.1.2 一個很“好玩”的游戲 / 247
11.1.3 實現簡單有限狀態機的類 / 248
11.2 狀態模式之我很胖但我很強 / 251
11.2.1 什么是狀態模式 / 251
11.2.2 用狀態模式實現有限狀態機 / 252
11.3 真正的狀態機來了 / 258
11.3.1 創建狀態機類 / 258
11.3.2 被釋放的木頭類 / 260
11.4 事件驅動,你想象不到的強大 / 263
11.4.1 徹底拋棄update函數——新的狀態機類 / 263
11.4.2 更智能的狀態類 / 266
11.4.3 見證新的運作情況 / 267
第12章 我比Csv更厲害——強大的Lua / 269
12.1 讓Lua和C++牽手 / 269
12.1.1 Lua的堆棧和全局表 / 269
12.1.2 Lua和C++的第一次通信 / 269
12.2 Demo講解之Lua和C++牽手 / 270
12.2.1 引入Lua庫 / 271
12.2.2 開始使用 / 272
12.2.3 執行Lua腳本 / 273
12.2.4 重置棧頂索引,將全局變量放到堆棧中 / 274
12.2.5 最后一步,C++取得字符串 / 274
12.3 簡單解析Lua的堆棧 / 276
12.4 來點高難度的,獲取Lua表結構的數據 / 276
12.4.1 什么是table / 277
12.4.2 獲取table變量 / 277
12.4.3 lua_gettable函數 / 277
12.5 C++調用Lua函數 / 280
12.6 Lua調用C++的函數 / 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 一切的源頭——UI的XML配置文件 / 287
13.2.2 知識補充1——TinyXML介紹 / 289
13.2.3 知識補充2——TinyXML的HelloWorld / 289
13.2.4 知識補充3——用TinyXML讀取UI模塊的XML配置文件 / 292
13.2.5 封裝,我們要記住封裝——XML標簽節點對象 / 296
13.2.6 我負責保存,你負責修飾——XML標簽節點屬性設置器 / 302
13.3 嘗點甜頭——創建控件 / 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控件系統 / 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 開篇——最后的游戲實例 / 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 數據讀取模塊 / 364
14.3.3 全局參數 / 365
14.3.4 請說英文好嗎?不,說中文——I18N工具類 / 366
第15章 傾情奉獻——因為偷懶而誕生的《卡牌塔防》游戲(下篇)/ 372
15.1 英雄誕生 / 372
15.1.1 創建關卡場景 / 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——加入創建英雄的功能 / 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——英雄開始發射子彈 / 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 關卡信息數據刷新——NotificationCenter的應用 / 431
16.1.3 怪物數量刷新 / 435
16.1.4 怪物安息——怪物死亡后塔魂數量刷新 / 435
16.1.5 堡壘安息——怪物到達堡壘后扣除魔力值 / 436
16.1.6 打怪升級——英雄升級扣除塔魂 / 438
16.2 謝幕 / 439
16.2.1 關卡選擇——根據關卡數加載游戲 / 439
16.2.2 勝利條件判斷 / 443
16.2.3 失敗條件判斷 / 446
16.3 移植游戲到Android平臺 / 447
16.3.1 傻瓜式的Android環境搭建1——準備工作 / 447
16.3.2 傻瓜式的Android環境搭建2——解壓和安裝 / 448
16.3.3 傻瓜式的Android環境搭建3——測試一下吧 / 451
16.3.4 準備工作——導入Android項目 / 453
16.3.5 一勞永逸——修改Android.mk文件 / 455
16.3.6 開始編譯——build_native.py文件 / 458
第17章 我不要一個人玩游戲——網絡游戲入門 / 460
17.1 只能給你一塊敲門磚——本章帶給大家的內容 / 460
17.2 左手畫方右手畫圓——多線程 / 461
17.3 從最簡單的開始——從建立連接到接收數據 / 464
17.3.1 偷偷和別人連接——使用ODSocket與服務器建立連接 / 465
17.3.2 不務正業——編寫一個測試服務端 / 467
17.3.3 言歸正傳——編寫我們的Cocos2d-x客戶端 / 469
17.4 你得真的像個網游——服務端與客戶端交互邏輯 / 471
17.4.1 逃避多線程——更安全的數據接收處理 / 471
17.4.2 進入游戲——服務端通知客戶端進入游戲場景 / 476
17.4.3 更多的人——請求在線人數,添加所有玩家到場景中 / 480
17.4.4 新人要報到——有新玩家加入,通知已在線玩家 / 484
第18章 額外的一些東西 / 486
18.1 常見錯誤及解決方案 / 486
18.1.1 調用可變參數函數時,總是莫名報錯 / 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 游戲發布流程(概述) / 489
18.2.1 給游戲加入廣告SDK / 489
18.2.2 加入統計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 加密的數據類型,拒絕游戲修改器 / 494
18.4.2 防止打包黨的一些小技巧 / 495
18.5 游戲開發思維 / 497
18.5.1 不管游戲多快,一幀就是一幀,我們能做很多事情 / 497
18.5.2 隨機應變,利用不經意的Bug創造更多玩法 / 497
18.6 最后的最后 / 498
18.6.1 最快速找到木頭的方式 / 498
18.6.2 給讀者的驚喜——丁小若寄語 / 499
18.6.3 請提供你的意見和你發現的Bug / 499
序: