Cocos2D權威指南

Cocos2D權威指南

系統講解了Cocos2D的使用方法、技術要點、工作原理、高級知識、開發技巧、最佳實踐和性能最佳化,而且通過精心設計的典型案例詳細講解了Cocos2D遊戲設計與開發的完整過程,極具啟發性和可操作性。

內容介紹

本書是目前Cocos2D領域內容最全面、系統和深入的一本著作,也是技術版本最新的一本著作。由國內iOS和Cocos2D領域的先驅和資源專家撰寫,不僅系統講解了Cocos2D的使用方法、技術要點、工作原理、高級知識、開發技巧、最佳實踐和性能最佳化,而且通過精心設計的典型案例詳細講解了Cocos2D遊戲設計與開發的完整過程,極具啟發性和可操作性。 此外,還介紹了如何進行套用的測試與發布,以及Cocos3D、Cocos2D-x、Cocos2D-HTML5、Cocos2D-Python等衍生技術。

全書共19章,分為三個部分:基礎篇(第1~9章)系統講解了Cocos2D v2.0的功能特性、使用方法、技術要點和工作原理,通過超級瑪麗等3個經典遊戲將Cocos2D中的核心類、動作、特效、動畫、文本渲染系統、事件處理機制、聲音、瓷磚地圖、Box2D等內容貫穿其中,真實有趣,易於理解;實戰篇(第10~12章),通過對Angel Panda和Angry Panda兩款經典遊戲的設計與開發過程的講解,為讀者展示了使用Cocos2D開發遊戲的完整流程,可操作性極強;高級篇(第13~19章),著重講解了Cocos2D v2.0的高級知識、實用開發技巧和最佳實踐,包括粒子系統、CocosBuilder和Shader、在遊戲中添加對IAP的支持、性能分析與最佳化、產品的測試/發布/推廣,以及Cocos2D的延伸技術。

作者介紹

王寒,蘋果的鐵桿冬粉,國內iOS套用開發領域的先驅,2009年開始從事iOS套用開發。精通Objective-C語言、iOS平台上的套用和互動娛樂類產品的設計和開發,經驗非常豐富。其帶領團隊開發了超過100款基於iOS平台的產品,其中“古箏”這一款產品獲評2011年度蘋果App Store中國區最佳音樂類套用,“魔幻古箏”、“酷木吉他”、“二胡”、“酷系列”等產品長期在App Store音樂類付費榜單中占據前列。對Cocos2D技術有非常深入的研究,熟悉各種延伸版本和相關技術,積累了豐富的實戰經驗。活躍於國內最大的iOS開發者社區CocoaChina和iOS教程社區泰然論壇,有較高的知名度和影響力。最近關注Cocos2D-x、Unity3D、HTML 5、社交遊戲開發等新技術。

屈光輝,網名“子龍山人”,資深iOS開發工程師、遊戲開發工程師和布道師。國內Cocos2D領域的頂級專家之一,有豐富的項目經驗。活躍於Cocos2D-x、Cocos2D-iPhone、CocoaChina、泰然論壇、部落格園等技術社區,在社區里發表了大量相關的技術文章,深受廣大讀者歡迎,幫助大批想成為iOS開發者的人實現了自己的理想,頗具影響力和知名度。精通C、C++、Java等相關技術,對JavaScript、Lua、.NET等技術也有一定的了解。Vim狂熱分子,近期關注HTML 5、OpenCV和社交遊戲的開發。

周雪彬,資深移動套用開發工程師和網際網路服務諮詢師,現就職於華為,精通iOS和Android平台的套用開發,以及移動套用的產品需求分析與產品設計,有豐富的實戰經驗。

作品目錄

前 言
第一部分 基礎篇
第1章 開始前的準備工作/ 2
1.1 什麼是Cocos2D/ 2
1.1.1 Cocos2D的特點/ 2
1.1.2 Cocos2D的主要功能/ 2
1.1.3 Cocos2D套用/ 3
1.2 下載與安裝/ 4
1.2.1 下載Cocos2D/ 4
1.2.2 安裝Cocos2D模板/ 6
1.2.3 創建Cocos2D-iPhone的幫助文檔/ 9
1.2.4 使用Cocos2D中內置的項目/ 10
1.3 HelloCocos2D實例/ 10
1.3.1 創建HelloCocos2D項目/ 10
1.3.2 添加小飛機/ 11
1.3.3 讓飛機飛行/ 13
1.4 深入學習HelloCocos2D項目/ 13
1.4.1 初識場景和節點/ 13
1.4.2 實現代碼分析/ 14
1.5 在設備上運行HelloCocos2D項目/ 23
1.5.1 使用Xcode的自動設定/ 23
1.5.2 在設備上編譯運行項目/ 24
1.6 本章小結/ 24
第2章 你的第一款iPhone遊戲—垂直射擊遊戲/ 25
2.1 準備工作/ 25
2.2 構建遊戲場景/ 28
2.2.1 添加資源目錄/ 28
2.2.2 添加遊戲背景/ 28
2.2.3 添加玩家飛機/ 29
2.2.4 添加敵機/ 30
2.3 玩家互動/ 33
2.3.1 添加加速計移動/ 33
2.3.2 添加子彈並射擊/ 35
2.4 碰撞檢測/ 37
2.5 遊戲音效/ 38
2.6 最後的點綴/ 39
2.6.1 添加計分和玩家生命值/ 39
2.6.2 添加遊戲勝利和結束畫面/ 42
2.7 本章小結/ 44
第3章 Cocos2D核心類/ 45
3.1 Cocos2D節點基礎知識/ 45
3.1.1 節點層級圖/ 45
3.1.2 什麼是錨點/ 46
3.2 CCNode節點類/ 47
3.2.1 CCNode類的屬性/ 47
3.2.2 CCNode類的方法/ 50
3.3 CCScene場景類/ 57
3.3.1 CCTransitionScene場景切換/ 58
3.3.2 Cocos2D支持的場景過渡效果/ 59
3.4 CCLayer層類/ 60
3.4.1 CCLayer類的作用/ 61
3.4.2 CCLayerColor色彩層/ 62
3.4.3 CCLayerGradient漸變色層/ 63
3.4.4 CCMenu選單類/ 63
3.5 CCTexture紋理類/ 65
3.5.1 紋理和紋理圖集/ 65
3.5.2 CCTexture2D、CCTextureCache和CCTextureAtlas/ 66
3.6 CCSprite精靈類/ 67
3.6.1 CCSprite類的屬性及方法/ 67
3.6.2 CCSpriteBatchNode精靈表單/ 71
3.6.3 CCSpriteFrame精靈幀/ 73
3.6.4 CCSpriteFrameCache精靈幀快取/ 74
3.7 Cocos2D中的單例/ 76
3.7.1 Cocos2D中的常用單例/ 77
3.7.2 CCDirector導演類/ 77
3.8 垂直射擊遊戲—載入遊戲數據/ 81
3.8.1 注釋draw方法和背景/ 81
3.8.2 載入遊戲資源/ 82
3.8.3 修改AppDelegate.m檔案/ 88
3.8.4 修改HelloWorldLayer/ 89
3.8.5 代碼重構/ 90
3.9 本章小結/ 93
第4章 Cocos2D中的動作、特效與動畫/ 94
4.1 Cocos2D中的節點動作/ 94
4.1.1 運行ActionsTest測試/ 94
4.1.2 Cocos2D中的動作類/ 96
4.2 動作的分類及使用/ 98
4.2.1 基本動作/ 98
4.2.2 組合動作/ 102
4.2.3 Ease動作/ 105
4.2.4 延遲動作/ 107
4.2.5 方法回調動作/ 107
4.2.6 塊語句調用動作/ 112
4.2.7 反轉動作/ 116
4.2.8 特殊動作/ 117
4.3 垂直射擊遊戲:載入進度條與滾動背景/ 117
4.3.1 使用CCProgressTo和CCProgressFromTo動作添加進度條/ 117
4.3.2 使用CCFollow和CCParallaxNode動作添加滾動背景/ 119
4.4 Cocos2D中的特效/ 122
4.4.1 Cocos2D中的格線/ 122
4.4.2 特效的種類及使用/ 123
4.4.3 讓節點對象返回最初狀態/ 127
4.5 Cocos2D中的動畫/ 127
4.5.1 Cocos2D中與動畫相關的類/ 127
4.5.2 在Cocos2D中實現動畫效果/ 128
4.6 使用Zwoptex工具實現動畫效果/ 129
4.6.1 安裝Zwoptex工具/ 129
4.6.2 製作精靈表單/ 130
4.6.3 製作精靈動畫/ 132
4.7 垂直射擊遊戲—添加飛行和爆炸動畫/ 134
4.7.1 添加玩家飛機飛行動畫/ 134
4.7.2 添加飛機爆炸效果/ 136
4.8 本章小結/ 138
第5章 Cocos2D中的文本渲染系統/ 139
5.1 文本渲染系統的組成/ 139
5.1.1 CCLabelTTF類/ 139
5.1.2 CCLabelAtlas類/ 145
5.1.3 CCLabelBMFont類/ 147
5.2 標籤的對齊方式/ 151
5.3 使用第三方工具創建字型紋理圖集/ 152
5.3.1 Hiero工具的使用方法/ 153
5.3.2 創建字型圖集步驟/ 153
5.4 垂直射擊遊戲—美化遊戲界面/ 155
5.4.1 渲染文本/ 155
5.4.2 實現倒計時功能/ 156
5.5 本章小結/ 158
第6章 Cocos2D中的事件處理機制/ 159
6.1 iOS中的互動事件處理/ 159
6.1.1 什麼是用戶輸入事件/ 159
6.1.2 多點觸摸事件處理機制/ 160
6.1.3 重力感應事件處理機制/ 162
6.2 Cocos2D中的觸摸事件處理/ 164
6.2.1 如何處理觸摸事件/ 165
6.2.2 模板中自帶的TouchesTest項目/ 168
6.2.3 實戰—隨手指移動的小球/ 169
6.3 Cocos2D中的重力感應事件/ 172
6.3.1 如何處理重力感應事件/ 172
6.3.2 實戰—受加速計控制的小球/ 172
6.4 垂直射擊遊戲—暫停遊戲/ 177
6.4.1 PauseLayer類的實現/ 177
6.4.2 CustomMenu類的實現/ 180
6.4.3 遊戲主場景添加暫停層/ 180
6.4.4 PauseLayerProtocol代理/ 181
6.5 本章小結/ 182
第7章 Cocos2D世界的聲音/ 183
7.1 認識CocosDenshion音效引擎/ 183
7.1.1 CocosDenshion重要API/ 183
7.1.2 CocosDenshion相關類/ 184
7.1.3 Cocos2D支持的CocosDenshion/ 185
7.2 SimpleAudioEngine使用方法/ 186
7.2.1 添加背景音樂/ 187
7.2.2 控制音樂的播放和停止/ 188
7.2.3 判斷當前是否播放背景音樂/ 192
7.2.4 添加音效/ 194
7.3 CDSoundEngine使用方法/ 195
7.3.1 設定CDSoundEngine/ 195
7.3.2 播放背景音樂和音效/ 199
7.4 遊戲選單中的聲音設定選項/ 202
7.5 垂直射擊遊戲—GameOver/ 208
7.5.1 實現背景音樂暫停功能/ 208
7.5.2 實現選單場景/ 208
7.5.3 實現高分榜場景/ 215
7.5.4 實現GameOver場景/ 221
7.6 本章小結/ 223
第8章 在Cocos2D中使用瓷磚地圖/ 224
8.1 認識瓷磚地圖/ 224
8.2 Tiled地圖編輯器/ 225
8.2.1 安裝Tiled/ 225
8.2.2 用Tiled繪製地圖/ 226
8.2.3 在地圖中添加對象/ 230
8.3 在項目中使用瓷磚地圖/ 232
8.3.1 TMX檔案解析/ 232
8.3.2 Cocos2D中的瓷磚地圖類/ 233
8.3.3 在項目中載入TMX地圖/ 238
8.3.4 使用TMX地圖中的對象/ 239
8.4 超級瑪麗—實現簡單的原型/ 242
8.4.1 準備工作/ 243
8.4.2 創建高清版本Tiled地圖/ 244
8.4.3 在代碼里載入Tiled地圖/ 248
8.4.4 利用WBTMXTool工具製作普清版本Tiled地圖/ 250
8.4.5 添加遙感控制器/ 252
8.5 本章小結/ 254
第9章 物理引擎—更真實的Cocos2D世界/ 255
9.1 遊戲物理引擎概況/ 255
9.1.1 物理引擎的套用/ 255
9.1.2 常見的遊戲物理引擎/ 257
9.2 認識Box2D / 257
9.2.1 Box2D碰撞檢測和處理系統/ 258
9.2.2 Box2D中的核心概念/ 259
9.3 示例項目HelloBox2D詳解/ 265
9.3.1 使用模板創建HelloBox2D項目/ 265
9.3.2 解讀HelloBox2D默認項目代碼/ 267
9.3.3 完善HelloBox2D項目/ 280
9.4 Box2D實戰—物理射擊遊戲/ 291
9.4.1 準備工作/ 292
9.4.2 創建會轉動手臂的小人/ 294
9.4.3 發射子彈/ 300
9.4.4 使用PhysicEditor工具製作凹槽/ 303
9.4.5 凹槽實現升降機效果/ 306
9.4.6 處理碰撞感測器/ 307
9.4.7 加入更多障礙/ 309
9.5 超級瑪麗—Box2D與Tiled結合/ 310
9.5.1 添加瑪麗和物體的物理屬性/ 310
9.5.2 使瑪麗行走和跳躍/ 319
9.5.3 為遊戲中的金幣和箱子添加物理屬性/ 325
9.5.4 碰撞檢測—吃金幣/ 329
9.5.5 遊戲特效—吸金幣/ 332
9.5.6 加入遊戲音效/ 335
9.5.7 設計勝利和失敗條件/ 335
9.6 本章小結/ 338
第二部分 實戰篇
第10章 Angel Panda遊戲的設計與實現/ 340
10.1 iOS遊戲完整的製作流程/ 340
10.2 Angel Panda遊戲設計/ 342
10.2.1 Angel Panda的創意來源/ 342
10.2.2 Angel Panda的故事背景及遊戲規則/ 342
10.2.3 Angel Panda的遊戲體驗流程/ 343
10.3 開發前的準備工作/ 343
10.3.1 下載並安裝合適的開發工具/ 343
10.3.2 將項目分解成不同的模組/ 344
10.3.3 準備遊戲中所需要的資源/ 345
10.4 Angel Panda遊戲的實現/ 345
10.4.1 使用Cocos2D模板創建新項目/ 345
10.4.2 設定遊戲主場景/ 350
10.4.3 添加遊戲角色/ 354
10.4.4 添加用戶互動機制/ 368
10.4.5 添加遊戲邏輯/ 370
10.4.6 添加音效/ 374
10.5 本章小結/ 377
第11章 AngryPanda遊戲的設計與框架搭建/ 378
11.1 AngryPanda遊戲設計/ 378
11.1.1 AngryPanda的創意來源/ 378
11.1.2 AngryPanda的故事背景及遊戲規則/ 378
11.1.3 AngryPanda的遊戲體驗流程/ 379
11.2 開發前的準備工作/ 379
11.2.1 下載並安裝合適的開發工具/ 379
11.2.2 將項目分解成不同的模組/ 380
11.2.3 準備遊戲需要的資源/ 381
11.2.4 使用Box2D模板創建新項目/ 382
11.3 數據存儲和遊戲設定/ 383
11.3.1 創建和實現GameData類/ 384
11.3.2 GameData類中的重要方法/ 386
11.3.3 創建Constants.h頭檔案/ 389
11.4 遊戲中的音效管理/ 390
11.4.1 創建GameSounds類/ 390
11.4.2 GameSounds類中的重要方法/ 391
11.5 遊戲中的輔助界面/ 391
11.5.1 遊戲開始界面/ 392
11.5.2 遊戲介紹界面/ 400
11.5.3 關卡選擇界面/ 404
11.5.4 關卡結束界面/ 407
11.6 本章小結/ 410
第12章 Angry Panda遊戲主場景的實現/ 411
12.1 Box2D世界的物體/ 411
12.1.1 創建抽象物體類/ 411
12.1.2 創建熊貓角色/ 414
12.1.3 創建平台物體/ 418
12.1.4 創建外星怪物/ 419
12.1.5 創建遮擋物體/ 423
12.1.6 創建並放置攻擊目標/ 425
12.2 實現遊戲的主場景/ 427
12.2.1 創建MainScene類/ 428
12.2.2 場景的視覺呈現/ 431
12.2.3 如何與用戶互動/ 437
12.2.4 實現遊戲的邏輯機制/ 442
12.3 遊戲中的碰撞檢測機制/ 443
12.3.1 創建ContactListener類/ 444
12.3.2 碰撞檢測機制的實現/ 444
12.4 本章小結/ 447
第三部分 高級篇
第13章 粒子系統/ 450
13.1 Cocos2D中的粒子系統/ 450
13.1.1 粒子系統相關的類/ 450
13.1.2 Cocos2D內置的粒子系統/ 452
13.2 手動創建粒子系統示例/ 453
13.2.1 創建ParticleEffect項目/ 453
13.2.2 添加Cocos2D內置的粒子系統/ 454
13.2.3 手動創建粒子系統類/ 455
13.2.4 設定粒子系統的屬性/ 459
13.3 plist檔案/ 464
13.3.1 particle.plist檔案內容/ 464
13.3.2 使用plist檔案創建粒子系統/ 466
13.4 粒子工具Particle Designer/ 468
13.4.1 下載安裝Particle Designer/ 468
13.4.2 Particle Designer工具列/ 469
13.4.3 如何設定Emitter Config屬性/ 470
13.4.4 如何在項目中使用粒子系統/ 472
13.5 本章小結/ 473
第14章 CocosBuilder和Shader/ 474
14.1 CocosBuilder初體驗/ 474
14.1.1 下載安裝CocosBuilder/ 474
14.1.2 查看Example目錄結構/ 476
14.1.3 如何打開樣例檔案/ 477
14.2 第一個CocosBuilder項目/ 478
14.2.1 創建HelloWorldCocosBuilder場景/ 478
14.2.2 載入HelloWorldCocosBuilder場景/ 483
14.2.3 建立文檔與代碼的連線/ 484
14.2.4 完善HelloWorldCocosBuilder場景/ 486
14.3 HelloWorldCocosBuilder項目功能完善/ 489
14.3.1 製作GameMenu場景/ 490
14.3.2 製作About場景/ 493
14.3.3 發布ZIP格式場景資源檔案/ 495
14.3.4 如何支持多個設備解析度/ 496
14.4 著色器/ 496
14.4.1 著色器的種類及工作原理/ 497
14.4.2 編寫自己的Shader程式/ 500
14.4.3 如何為Sprite定製頂點著色器/ 503
14.4.4 如何定製片段著色器/ 507
14.4.5 旋風效果示例/ 509
14.5 本章小結/ 512
第15章 在遊戲中添加對Game Center的支持/ 513
15.1 什麼是Game Center/ 513
15.1.1 Game Center的功能/ 513
15.1.2 Game Center的特點/ 513
15.2 在項目中添加對Game Center的支持/ 514
15.2.1 註冊iOS開發者賬號/ 514
15.2.2 為套用創建並設定App ID/ 514
15.2.3 在iTunes Connect中註冊套用/ 517
15.2.4 開啟對Game Center的支持/ 520
15.2.5 在iTunes Connect中添加成就系統/ 520
15.2.6 在iTunes Connect中設定積分排行榜/ 523
15.3 示例項目GKTapper詳解/ 524
15.3.1 添加Game Kit框架/ 525
15.3.2 檢查Game Center是否可用/ 526
15.3.3 驗證玩家是否登錄Game Center/ 527
15.3.4 實現成就系統/ 530
15.3.5 實現積分排行榜/ 535
15.4 本章小結/ 539
第16章 在遊戲中添加對IAP的支持/ 540
16.1 什麼是IAP/ 540
16.1.1 IAP的功能/ 540
16.1.2 IAP中的商品類型/ 540
16.1.3 IAP實現機制/ 542
16.2 Store Kit Framework介紹/ 545
16.2.1 Store Kit Framework中的購買核心類/ 545
16.2.2 Store Kit Framework中的商品核心類/ 548
16.2.3 SKDownload類/ 550
16.2.4 Store Kit Framework中的協定/ 550
16.3 在iTunes Connect配置IAP/ 551
16.3.1 在iTunes Connect中添加商品信息/ 552
16.3.2 在iTunes Connect中添加沙盒測試賬號/ 558
16.4 在項目中添加與IAP相關的代碼/ 560
16.4.1 IAPGame項目簡介/ 560
16.4.2 在項目中添加Store Kit框架/ 562
16.4.3 添加MyStore類/ 563
16.5 在設備中測試並提交審核/ 576
16.6 本章小結/ 583
第17章 遊戲性能分析與最佳化/ 584
17.1 如何發現性能瓶頸/ 584
17.1.1 Instruments基本功能/ 584
17.1.2 Instruments中內置的分析工具/ 585
17.1.3 如何使用Time Profiler工具模板/ 586
17.1.4 如何使用OpenGL ES Driver工具模板/ 588
17.1.5 使用空白模板創建定製分析工具/ 590
17.2 Cocos2D內置的性能分析工具/ 591
17.2.1 CCProfiler和CCProfilingTimer/ 591
17.2.2 如何使用性能分析工具/ 593
17.3 最佳化Cocos2D遊戲性能/ 595
17.3.1 在Cocos2D中開啟自動引用計數/ 595
17.3.2 使用CCSpriteBatchNode 替代CCSprite/ 597
17.3.3 提升遊戲性能的其他技巧/ 598
17.4 本章小結/ 600
第18章 產品的測試、發布與推廣/ 601
18.1 用戶體驗測試/ 601
18.1.1 測試用戶的選擇/ 601
18.1.2 產品測試的步驟/ 601
18.2 產品的上傳與發布/ 610
18.2.1 加入iOS開發者計畫/ 610
18.2.2 在App Store中發布產品/ 618
18.3 App產品的宣傳與推廣/ 636
18.3.1 產品推廣的原因/ 636
18.3.2 產品推廣的方法/ 636
18.4 本章小結/ 638
第19章 Cocos2D的延伸/ 639
19.1 Cocos3D簡介/ 639
19.1.1 Cocos3D的基本特性/ 639
19.1.2 Cocos3D核心類簡介/ 640
19.1.3 下載並安裝Cocos3D/ 642
19.2 Cocos2D-x 簡介/ 643
19.2.1 創建iOS版的HelloWorld項目/ 643
19.2.2 創建基於Cocos2D-x的Android項目/ 648
19.3 Cocos2D-HTML5詳解/ 661
19.3.1 Cocos2D-HTML5簡介/ 661
19.3.2 下載安裝Cocos2D-HTML5/ 662
19.3.3 安裝配置WebServer(可選)/ 664
19.3.4 解析helloHTML5World項目/ 665
19.4 Cocos2D-Python簡介/ 671
19.5 本章小結/ 671

相關詞條

相關搜尋

熱門詞條

聯絡我們