Cocos2D-X遊戲開發技術精解

作者介紹

劉劍卓 有點文藝的IT男,會做美食的運動男,喜歡電影的80後。擁有八年的游
戲開發經驗,精通移動平台以及PC平台遊戲的開發,在過往的職業生涯已有
多款上線暢銷遊戲。擁有自主研發開發工具、引擎以及遊戲產品的能力,有應
用第三方先進引擎的開發經驗,熟練使用多種程式語言、腳本語言以及3D渲
染技術。熱衷於國內外遊戲行業狀況和國際技術潮流,關注移動網際網路以及游
戲領域的發展。

作品目錄

目 錄
第1章Cocos2D-X引擎的介紹 1
1.1何為遊戲引擎 1
1.1.1遊戲的核心—引擎 1
1.1.2引擎的特點 2
1.1.3知名的引擎介紹 4
1.1.4引擎的分類 5
1.2Cocos2D-X引擎的來歷 8
1.3引擎的版本 9
1.4下載與安裝 10
1.5引擎的組成 13
1.6技術文檔 15
1.7成功的遊戲 17
1.8Cocos2D-X引擎的體系 18
1.9Cocos2D-X引擎的著作權聲明 19
1.10本章小結 20
第2章Cocos2D-X引擎的 開發環境 21
2.1跨平台的開發 21
2.2建立開發環境 23
2.2.1PC開發環境 23
2.2.2Android開發環境 26
2.2.3iOS開發環境 35
2.3引擎中的混合編譯 38
2.3.1Java與C++的混合編譯 38
2.3.2Objective-C與C++的混合編譯 41
2.4引擎的啟點 42
2.4.1應用程式入口 43
2.4.2引擎套用入口 44
2.5豐富的示例程式 46
2.5.1TestCpp示例項目 46
2.5.2腳本示例項目 47
2.5.3MoonWarriors示例項目 47
2.6本章小結 48
第3章引擎的核心——渲染框架 49
3.1基本框架 50
3.1.1引擎的位置 50
3.1.2根源種子 51
3.1.3子類結構 57
3.2渲染框架 57
3.2.1框架結構 58
3.2.2攝像機類(CCCamera) 59
3.2.3導演類(CCDirector) 59
3.2.4場景類(CCScene) 62
3.2.5圖層類(CCLayer) 64
3.2.6精靈類(CCSprite) 68
3.2.7精靈集合類(CCSpriteBatchNode) 72
3.2.8精靈幀緩衝(CCSpriteFrameCache) 74
3.2.9Zwoptex紋理編輯器 76
3.3文字與字型 80
3.3.1TTF類型標籤(CCLabelTTF) 81
3.3.2BMFont標籤類(CCLabelBMFont) 84
3.3.3Atlas標籤類(CCLabelAtlas) 87
3.4選單按鈕 89
3.5幾何繪製DrawPrimitives 94
3.6CocosBuilder編輯器 95
3.6.1CocosBuilder使用指南 95
3.6.2引擎中的套用 97
3.7本章小結 98
第4章動作功能 100
4.1概述 100
4.2動作基類 101
4.2.1動作類的繼承關係 102
4.2.2動作基類CCAction的成員函式 102
4.2.3類CCNode中與動作有關的函式 104
4.3時間動作 105
4.3.1及時動作 105
4.3.2持續動作 109
4.4組合動作類 116
4.4.1序列動作類(CCSequence) 116
4.4.2同步動作類(CCSpawn) 118
4.4.3重複動作類(CCRepeat & CCRepeatForever) 119
4.5可變速度類(CCEaseAction) 120
4.5.1CCEaseIn、CCEaseOut和CCEaseInOut 122
4.5.2EaseSineIn、EaseSineOut和EaseSineInOut 124
4.5.3CCEaseBackIn、CCEaseBackOut和CCEaseBackInOut 124
4.5.4EaseExponentialIn、EaseExponentialOut和EaseExponentialInOut 125
4.5.5CCEaseBounceIn、CCBounceOut和CCBounceInOut 125
4.5.6CCEaseElasticIn、CCEaseElasticOut和CCEaseElasticInOut 125
4.6速度類(CCSpeed) 125
4.7延遲動作類(CCDelay) 127
4.8跟隨動作類(CCFollow) 128
4.9擴展動作類 129
4.9.1概述 129
4.9.2翻頁動作(CCPageTurn3D) 130
4.9.3波紋動作(CCWaves3D) 130
4.9.4格子動作類(CCGridAction) 131
4.10動畫動作類 132
4.10.1精靈幀 133
4.10.2精靈幀緩衝 134
4.10.3動畫類 135
4.10.4動畫動作 136
4.11動畫編輯器 136
4.11.1概述 136
4.11.2CocosBuilder編輯器中的精靈動畫 137
4.11.3SpriteX草莓編輯器 138
4.11.4MotionWelder動畫編輯器 139
4.12樣例程式 141
4.13本章小結 143
第5章用戶互動 147
5.1概述 147
5.2玩家互動信息 149
5.3觸摸操作的處理機制 149
5.4接收操作 153
5.5分發機制 154
5.6處理回響 157
5.7多點觸碰 159
5.8加速計的回響函式 161
5.9本章小結 162
第6章遊戲背景 164
6.1概述 164
6.22D遊戲背景的類型 164
6.3磚塊地圖編輯器 166
6.3.1地圖編輯器概述 167
6.3.2Tile Map Editor(磚塊地圖編輯器) 168
6.3.3製作一張遊戲地圖 170
6.3.4編輯器中的屬性功能 172
6.4磚塊地圖Tile Map 173
6.5地圖數據的格式 175
6.5.1編輯器導出的檔案 175
6.5.2地圖檔案分析 176
6.6磚塊地圖的實現 178
6.6.1磚塊地圖類CCTMXTiledMap 179
6.6.2地圖圖層類CCTMXLayer 181
6.6.3地圖物體層CCTMXObjectGroup 183
6.7示例項目 184
6.8背景的滾動與角色移動 186
6.9多層背景滾動效果 188
6.10本章小結 190
第7章物理模擬與碰撞檢測 192
7.1概述 192
7.2遊戲中的碰撞檢測 193
7.3碰撞檢測的方法 194
7.3.1平面幾何在碰撞檢測中的套用 194
7.3.2物體的包圍盒 197
7.3.3AABB碰撞檢測技術 198
7.4基本物理知識 199
7.5你好!Box2D! 201
7.5.1概述 201
7.5.2物理世界 202
7.5.3遊戲中的兩個世界 202
7.6Box2D的基礎知識 203
7.6.1概述 204
7.6.2概念定義 204
7.6.3物理引擎的模組 205
7.7引 擎 內 核 205
7.7.1基本配置 206
7.7.2記憶體管理機制 207
7.7.3工廠模式 208
7.7.4數據單位 208
7.7.5用戶數據 209
7.8物理世界World 210
7.8.1創建和摧毀一個世界 210
7.8.2讓世界運轉起來 211
7.8.3探索世界 212
7.8.5AABB查詢 213
7.8.6光線投射(Ray Casts) 214
7.9形狀Shapes 216
7.9.1碰撞模組 216
7.9.2形狀Shape的作用 216
7.9.3圓形(Circle Shapes) 216
7.9.4多邊形(b2PolygonShape) 217
7.10框架Fixtures 218
7.10.1動態模組(Dynamics Module) 219
7.10.2框架(Fixtures) 219
7.10.3密度(Density) 219
7.10.4摩擦(Friction) 220
7.10.5恢復(Restitution) 220
7.10.6篩選(Filtering) 220
7.10.7感應器(Sensors) 221
7.11物體Bodies 222
7.11.1物體定義 222
7.11.2位置和角度(Position and Angle) 223
7.11.3阻尼(Damping) 223
7.11.4休眠參數(Sleep Parameters) 224
7.11.5固定旋轉(Fixed Rotation) 224
7.11.6子彈(Bullets) 224
7.11.7活動狀態(Activation) 225
7.11.8用戶數據(User Data) 226
7.12關節(Joints) 226
7.12.1關節的定義(JointDef) 226
7.12.2關節的屬性 227
7.12.3距離關節(Distance Joint) 228
7.12.4旋轉關節(Revolute Joint) 229
7.12.5移動關節(Prismatic Joint) 230
7.12.6滑輪關節(Pulley Joint) 231
7.12.7齒輪關節(Gear Joint) 232
7.12.8滑鼠關節(Mouse Joint) 234
7.12.9線性關節(Line Joint) 235
7.12.10焊接關節(Weld Joint) 235
7.13接觸(Contants) 235
7.13.1概述 236
7.13.2接觸類(Contact Class) 237
7.13.3訪問接觸(Accessing Contacts) 237
7.13.4接觸監聽器(Contact Listener) 238
7.13.5接觸篩選(Contact Filtering) 240
7.14示例項目 241
7.14.1Box2dTest示例項目 241
7.14.2調試繪圖DebugDraw 243
7.14.3創建精靈剛體 244
7.15本章小結 246
第8章遊戲中的聲音 249
8.1概述 249
8.2音樂與音效 250
8.3聲音格式 250
8.4CocosDenshion聲音模組 252
8.5背景音樂操作函式 253
8.6聲音音效操作函式 255
8.7示例程式 256
8.8本章小結 259
第9章檔案操作模組 261
9.1概述 261
9.2引擎檔案操作模組 261
9.3讀取檔案 263
9.4寫入檔案 267
9.5遊戲中用戶數據 269
9.5.1遊戲中的用戶數據 269
9.5.2用戶數據的基本類型 270
9.5.3讀取與寫入操作 271
9.6示例程式 272
9.7本章小結 274
第10章記憶體管理機制 277
10.1記憶體管理概述 277
10.2引用計數 278
10.3自動釋放池 280
10.3.1使用方法 280
10.3.2實現原理 281
10.4管 理 模 式 284
10.4.1引擎當中的套用 284
10.4.2緩衝區 285
10.5日誌調試方式 286
10.6本章小結 288
第11章粒子系統 290
11.1概述 290
11.2粒子效果 291
11.3粒子系統的來歷 292
11.4引擎當中的粒子系統 293
11.5粒子的生命周期 294
11.6粒子的屬性 295
11.7粒子發射器屬性 296
11.7.1發射器共有的屬性 296
11.7.2重力發射器模式(Gravity) 304
11.7.3半徑發射器模式(Radius) 306
11.8粒子效果編輯器 307
11.8.1概述 308
11.8.2Particle Designer的使用方法 308
11.8.3引擎中套用 310
11.9本章小結 312
第12章Lua腳本語言 314
12.1概述 314
12.2Lua腳本語言簡介 315
12.3為什麼需要它? 316
12.3.1簡易性 316
12.3.2可擴展性 316
12.3.3高效性 317
12.3.4可移植性 317
12.4Lua腳本語言的語法 318
12.4.1類型與數值 318
12.4.2表達式 320
12.4.3語句 322
12.4.4函式 326
12.5Lua在引擎中的套用 328
12.5.1Lua與C/C++ 328
12.5.2引擎中的腳本引擎 329
12.6樣例程式 331
12.6.1腳本引擎初始化 332
12.6.2遊戲內容的實現腳本 333
12.6.3農場層的實現 334
12.6.4選單層的實現 337
12.7本章小結 338
第13章Cocos2D-HTML5引擎版本 340
13.1概述 340
13.2HTML的發展史 341
13.2.1HTML版本 341
13.2.2XHTML版本 342
13.2.3HTML5是未來之星 342
13.3HTML5新特性 342
13.3.1跨平台的特性 343
13.3.2Canvas API 343
13.3.3WebGL 344
13.3.4其他特性 345
13.4JavaScript語言基礎 346
13.4.1概述 346
13.4.2變數 347
13.4.3數據類型 348
13.4.4運算符 348
13.4.5語句 351
13.4.6對象 352
13.4.7函式 353
13.4.8事件 354
13.5Cocos2d-HTML5引擎 356
13.5.1HTML5版本介紹 356
13.5.2安裝引擎 357
13.5.3示例程式 357
13.5.4引擎的架構 360
13.6JS Binding技術的實現 362
13.6.1概述 362
13.6.2SpiderMonkey 362
13.6.3示例程式 363
13.7本章小結 364
第14章引擎之外的附加功能 366
14.1概述 366
14.2網路通訊支持 367
14.2.1HTTP介紹 367
14.2.2curl庫(libcurl) 368
14.2.3HTTP在引擎中的套用 368
14.2.4HTTP示例項目 372
14.2.5Socket的介紹 376
14.2.6BSD Socket在引擎中的套用 378
14.3收費模式 379
14.3.1下載計費 379
14.3.2內置計費 380
14.3.3廣告版本 380
14.4社交網路在遊戲中的套用 381
14.4.1Game Center 382
14.4.2OpenFeint 384
14.5數據分析 385
14.5.1Flurry介紹 386
14.5.2友盟 390
第15章Cocos2D-X引擎的未來 391
15.1概述 391
15.2Cocos2D引擎的走勢 391
15.3Cocos2D-X引擎的不足 392
15.3.1豐富的UI 393
15.3.2完善的工具 393
15.3.3支持網路通迅 395
15.3.4版本的統一 395
15.3.5數據安全 396
15.4Cocos2D-X引擎增強的功能 396
15.4.1良好的中文支持 397
15.4.2遊戲基本框架 397
15.4.3遊戲邏輯支持 398
15.4.4腳本化編程 399
15.4.5可視化的操作界面 400
15.5會不會有Cocos3D? 401
15.6本章小結 403

相關詞條

熱門詞條

聯絡我們