內容簡介
本書以實例為基礎,通過簡單的例子來介紹Cocos2d-x中各個模組的使用方法和一些常見遊戲的實現思路。書中詳細介紹從零基礎到能夠獨立開發簡單遊戲的整個過程,同時探討遊戲開發中設計模式的套用。另外,作者為書中的重點內容錄製了一些教學視頻,以便於讀者更加高效、直觀地學習。本書共19章,分為4篇。第1篇為開發前的環境搭建,主要介紹Cocos2d-x的背景知識及開發環境的搭建。第2篇為Cocos2d-x基礎鋪墊,主要介紹Cocos2d-x中的基本UI、對用戶操作的回響、地圖系統、物理引擎、粒子系統及存儲和網路等方面的知識。第3篇為Cocos2d-x技能提升,屬於進階知識,主要介紹如何使用額外的控制項、如何使用Cocos Studio及設計模式的相關內容。
目錄
第1篇開始前的環境搭建
第1章初識Cocos2d-x 2
1.1我是怎樣遇到Cocos2d-x的 2
1.1.1Cocos2d的歷史 3
1.1.2簡單介紹一下Cocos2d-x 4
1.1.3筆者的個人感受 5
1.2開始前的準備 6
1.2.1VisualStudio2013的安裝 6
1.2.2Cocos集成開發環境的安裝 9
1.3安卓開發環境的搭建 17
1.3.1JDK的安裝 17
1.3.2ADT的使用 22
1.3.3如何在真機上運行Cocos2d-x程式 26
1.3.4多個類的情況 27
1.4關於本書的一些約定 28
1.5小結 29
第2篇Cocos2d-x基礎鋪墊
第2章Cocos2d-x基礎知識學習 32
2.1在Cocos2d-x中創建一個新的場景 32
2.2讓場景顯示出來 35
2.3Cocos2d-x中的一些概念 37
2.3.1導演 37
2.3.2節點 38
2.3.3場景 39
2.3.4圖層 42
2.3.5精靈 43
2.4總結 45
第3章在螢幕上顯示內容 46
3.1在Cocos2d-x中顯示一行文字 46
3.2在Cocos2d-x中顯示圖像 52
3.3在Cocos2d-x中使用選單 54
3.4Cocos2d-x中螢幕適配的原理 57
3.5在Cocos2d-x中播放聲音 60
3.6實戰:一個簡單的鋼琴 63
3.7小結 65
第4章實現互動的功能 66
4.1單點觸摸的紙牌遊戲 66
4.2多點觸摸的羊駝遊戲 70
4.3滑鼠和鍵盤的加入 73
4.4在Cocos2d-x中使用加速度感測器 75
4.5實戰:在Cocos2d-x中實現遊戲搖桿 78
4.6小結 84
第5章讓人物動起來 85
5.1讓精靈進行簡單的動作 85
5.2在Cocos2d-x中實現更加複雜的動作 88
5.3在Cocos2d-x中實現動作的監聽 90
5.4讓主角跑起來 92
5.5用打包後的圖片創建動畫 93
5.6實戰:利用動畫實現人物行走 96
5.7小結 103
第6章定時器的原理及使用 104
6.1定時器的基本使用 104
6.2定時器的缺陷以及改進 105
6.3定時器的註冊與取消 107
6.4使用定時器實現觸發器 109
6.5實戰:利用定時器最佳化實現人物行走的效果 110
6.6實戰:實現回合制遊戲戰鬥效果 115
6.7小結 120
第7章地圖系統的使用 121
7.1使用圖片作為地圖 121
7.1.1實現人物簡單行走 122
7.1.2使用分層的方式來表示路徑 124
7.1.3實現人物的移動 126
7.1.4一點補充 128
7.2瓦片地圖與地圖編輯器 130
7.2.1獲得瓦片地圖 131
7.2.2將地圖載入到Cocos2d-x場景中 136
7.2.3在項目中使用瓦片地圖 136
7.3障礙物的獲取 140
7.4簡單介紹一下算法 143
7.4.1深度優先和廣度優先算法 145
7.4.2地圖的化簡 147
7.4.3最短路徑算法 151
7.4.4A星算法 152
7.5小結 156
第8章Cocos2d-x中的粒子系統 157
8.1什麼是粒子系統 157
8.2粒子系統的使用 159
8.3使用粒子系統創建火焰 162
8.4使用粒子編輯器 164
8.5小結 166
第9章在Cocos2d-x中使用物理引擎 167
9.1什麼是物理引擎 167
9.2物理引擎中常用的概念 169
9.2.1世界 170
9.2.2剛體 170
9.2.3形狀 172
9.2.4夾具 172
9.2.5關節 173
9.2.6碰撞 174
9.3在Cocos2d-x中使用物理引擎 175
9.4玩家實現對剛體的操縱 178
9.5Box2D中關於倍數的設定 181
9.6向螢幕中加入多個小球 183
9.7小結 187
第10章存儲和網路 188
10.1Cocos2d-x中本地信息的存儲 188
10.2Cocos2d-x中的檔案系統 191
10.3Cocos2d-x中弱聯網技術的使用 194
10.3.1通過HTTP協定獲取線上信息 195
10.3.2向服務端傳送請求 198
10.4Cocos2d-x中XML檔案的解析 198
10.5小結 200
第3篇Cocos2d-x技能提升
第11章高級UI控制項 202
11.1九宮格是個什麼東西 202
11.1.1九宮格簡介 202
11.1.2實現九宮格的效果 204
11.1.3神奇的Scale9Sprite 207
11.2Scale9Sprite在按鈕中的套用 209
11.3在Cocos2d-x中使用滑動條 210
11.3.1自定義SlideBar實現滑動條 210
11.3.2使用類ControlSlider來實現滑動條的效果 212
11.4另一種形式的進度條 213
11.5在遊戲中使用開關 216
11.6小結 218
第12章學習使用CocosStudio 219
12.1CocosStudio的使用 219
12.1.1CocosStudio的作用 219
12.1.2CocosStudio中各部分的功能 221
12.1.3實戰:利用CocosStudio實現登錄APP 222
12.2在CocosStudio中使用自定義控制項 224
12.3對CocosStudio製作的按鈕進行回響 228
12.4使用骨骼編輯器製作動畫 231
12.4.1下載谷歌的骨骼動畫編輯器 232
12.4.2實戰:使用骨骼動畫編輯器實現運動的火柴人 233
12.5小結 235
第13章Cocos2d-x中的設計模式 236
13.1什麼是設計模式 236
13.2設計模式的作用是什麼 237
13.3Cocos2d-x中的設計模式 239
13.3.1單例模式 239
13.3.2二段構建模式 241
13.3.3工廠模式 243
13.3.4外觀模式 245
13.3.5觀察者模式 246
13.3.6中介者模式 247
13.4Cocos2d-x中的防禦式編程 248
13.5小結 249
第4篇Cocos2d-x遊戲開發案例實戰
第14章2048遊戲實例 252
14.12048遊戲概述 252
14.2遊戲手勢的識別 253
14.3卡片類的定義和實現 255
14.4卡片消除效果的實現 258
14.5遊戲界面的美化 264
14.5.1記分牌類的定義 264
14.5.2卡片背景的改變 266
14.5.3卡片顏色的設定 268
14.5.4卡片數值的顯示 270
14.6分數的計算 272
14.7小結 275
第15章連連看遊戲實戰 276
15.1遊戲分析 276
15.2瓦片地圖的製作與方塊的顯示 278
15.3遊戲中方塊的定義與實現 280
15.4用戶操作的邏輯判斷 283
15.5方塊連通性的判斷 288
15.5.1沒有拐點的直線 288
15.5.2一個拐點條件下連通性的判斷 289
15.5.3兩個拐點情況的判斷 291
15.5.4兩點連通性的判斷 292
15.6倒計時條的實現 294
15.7道具按鈕的加入 296
15.8界面的最佳化 299
15.9關卡的選擇 301
15.10小結 305
第16章實戰Popstar 306
16.1消除類遊戲簡介 306
16.2星星的定義和顯示 308
16.3玩家單擊事件的獲取 310
16.4使用廣度優先算法使星星消去 311
16.4.1消去四周的星星 312
16.4.2將連通的星星全部消去 314
16.5讓星星真正消去 315
16.5.1讓星星下落 315
16.5.2星星的平移 318
16.5.3一個小bug 319
16.6遊戲邏輯的判斷 321
16.7遊戲開始特效與界面的修改 322
16.8小結 324
第17章實戰縱版射擊遊戲 325
17.1縱版射擊遊戲簡介 325
17.2背景滾動的實現 326
17.3飛機類的實現 329
17.4“皮卡丘”跟隨玩家操縱 331
17.5子彈的發射 333
17.6敵人的創建 337
17.7不斷地創建敵機 340
17.8敵機發射子彈 342
17.9碰撞檢測與敵機的爆炸 344
17.10小結 348
第18章簡單的紙牌遊戲 349
18.1項目簡介 349
18.2定義一張紙牌 350
18.3洗牌和發牌 355
18.3.1紙牌序列的生成 355
18.3.2紙牌的分發過程 358
18.4“玩家類”的定義和實現 361
18.5玩家和電腦出牌的實現 365
18.5.1玩家出牌的實現 366
18.5.2電腦出牌的實現 368
18.5.3代碼的封裝 370
18.6玩家與電腦輪流出牌的實現 371
18.7實現讓玩家按照規則出牌 374
18.8實現電腦按照遊戲規則選牌和出牌 377
18.9最後來談談人工智慧與自動機 380
18.9.1自動機 380
18.9.2基於深度遍歷的方法 380
18.9.3基於策略的方法 380
18.9.4基於大數據的方法 381
18.10小結 381
第19章最後的一點補充 382
19.1遊戲素材的獲取 382
19.2遊戲題材的選擇 384
19.3遇到問題怎么辦 386
19.4遊戲如何推廣 388
19.5小結 389