內容介紹
《iOS 5 cocos2d遊戲開發實戰(第2版)》將引導您開發富有吸引力的2D遊戲。書中展示了如何使用cocos2d這款強大的遊戲引擎來開發iPhone和iPad遊戲,此外還介紹了遊戲中的瓦片地圖、虛擬搖桿、Game Center等。本書主要內容:
? 移動遊戲開發的過程和最佳實踐,包括精靈批處理技術、紋理圖冊、視差滾動、觸屏以及加速計輸入。
? 使用Box2D、Chipmunk物理引擎以及其他cocos2d相關的庫和工具提升遊戲性能。
? 在cocos2d套用中添加UIKit視圖,以及在UiKit 視圖中添加cocos2d。
? 詳細介紹Kobold2D開發環境及其預配置庫,包括cocos3d和Lua。
最重要的是,《iOS 5 cocos2d遊戲開發實戰(第2版)》將從最基礎的地方引領您開發遊戲,一步一步地指導創建示例遊戲。這些示例都是根據App Store中流行的遊戲改編而成的,它們能讓您了解cocos2d遊戲引擎中重要的概念和相關工具的使用,比如TexturePacker(紋理圖冊)、PhysicsEditor(物理性狀編輯器)、Particle Designer(粒子效果)、Glyph Designer(點陣圖字型)等。
本書詳細介紹了cocos2d遊戲引擎,關注的是創建完整cocos2d遊戲的過程而不是展示大量的iOS SDK 或OpenGL代碼。同時還介紹了不同的實現方法,展示了用來輔助cocos2d遊戲開發最好且免費的商用工具,闡釋了作者完善過的cocos2d遊戲引擎——Kobold2D,讓您的遊戲在App Store中更具競爭力。
作者介紹
作 者 簡 介Steffen Itterheim從20世紀90年代開始就一直熱衷於遊戲開發。他在Doom和Duke Nukem 3D社區表現活躍,並因此獲得了他的第一份自由職業,成為3D Realms的一名beta測試人員。作為職業遊戲開發者,Steffen擁有10多年的豐富經驗,其中大部分時間擔任Electronic Arts Phenomic的遊戲和工具程式設計師。2009年Steffen第一次接觸cocos2d,那時他與其他人共同創辦了一家iOS遊戲公司——Fun Armada。他樂於將自己的寶貴經驗傳授給其他遊戲開發者,以幫助他們更上一層樓。有機會你可能會在白天看到他在住所附近茂密的葡萄園周圍散步,也可能在晚上看到他在Nevada沙漠收集瓶蓋。
Andreas L?w在10歲的時候有了一台Commodore C16,從那時起他就對計算機產生了狂熱的興趣。他自學了編寫遊戲的技術,並在1994年發布了自己的第一款遊戲Gamma Zone,這是一款針對Commodore Amiga平台的遊戲,用純彙編語言編寫完成。在獲得電子工程學的學位後,他進入Harman International公司,負責為汽車行業開發具有語音識別功能的導航和娛樂系統。他開發了自己的程式語言和開發工具,現在世界上採用語音識別技術的每輛汽車都在使用他的程式語言和開發工具。
iPhone出現後,他有了回歸本行的打算,開始開發一款叫做TurtleTrigger的遊戲。他意識到cocos2d社區存在對好的開發工具的強烈需求。於是,利用自己在遊戲和工具開發方面的知識,他開發出了TexturePacker和PhysicsEditor,它們迅速成為cocos2d用戶進行開發時必不可少的工具。
作品目錄
目 錄第1章 簡介 ........................................... 1
1.1 本書第2版的新增內容 ............... 2
1.2 選擇iOS版cocos2d的理由 ........ 3
1.2.1 免費 ........................................... 3
1.2.2 開源 ........................................... 3
1.2.3 Objective-C ............................... 3
1.2.4 2D遊戲引擎 ............................. 3
1.2.5 物理引擎 ................................... 4
1.2.6 技術難度較低 ........................... 4
1.2.7 依然需要編程 ........................... 4
1.2.8 超棒的cocos2d社區 ................ 5
1.3 cocos2d-iphone項目的未來 ......... 5
1.4 其他cocos2d遊戲引擎 ................ 6
1.5 本書讀者對象 ............................... 7
1.6 閱讀前提 ....................................... 7
1.6.1 編程經驗 ................................... 7
1.6.2 Objective-C ............................... 7
1.7 本書內容 ....................................... 8
1.7.1 iOS遊戲開發新手將學會 什麼 ........................................... 8
1.7.2 iOS應用程式開發者將學會 什麼 ........................................... 9
1.7.3 cocos2d開發者將學會什麼 ..... 9
1.8 章節介紹 ....................................... 9
1.9 本書的原始碼 ............................. 10
1.10 問題和反饋 ............................... 11
第2章 入門 ......................................... 13
2.1 準備工作 ..................................... 13
2.1.1 系統要求 ................................. 13
2.1.2 註冊成為iOS開發者 ............. 14
2.1.3 證書和授權檔案 ..................... 14
2.1.4 下載並安裝iOS SDK ............. 14
2.1.5 下載並安裝cocos2d ............... 15
2.2 HelloWorld應用程式 ................. 18
2.2.1 HelloWorld檔案在項目中 的位置 ..................................... 19
2.2.2 資源 ......................................... 19
2.2.3 支持檔案 ................................. 19
2.2.4 HelloWorld類 ......................... 21
2.3 cocos2d中的記憶體管理問題 ....... 24
2.4 改變世界 ..................................... 27
2.5 你還應該知道的 ......................... 29
2.5.1 iOS設備 .................................. 29
2.5.2 關於記憶體的使用 ..................... 30
2.5.3 iOS模擬器 .............................. 31
2.5.4 關於日誌 ................................. 32
2.6 本章小結 ..................................... 33
第3章 基礎知識 ................................. 35
3.1 場景圖 ......................................... 35
3.2 CCNode類層次結構 .................. 38
3.3 CCNode類 .................................. 39
3.3.1 節點的處理方式 ..................... 39
3.3.2 動作的處理方式 ..................... 40
3.3.3 訊息調度 ................................. 41
3.4 Director類、場景和層 ............... 44
3.4.1 Director類 ............................... 44
3.4.2 CCScene類 ............................. 46
3.4.3 場景和記憶體 ............................. 47
3.4.4 推進和彈出場景 ..................... 48
3.4.5 CCTransitionScene類 ............. 49
3.4.6 CCLayer類 ............................. 51
3.5 CCSprite類 ................................. 56
iOS 5 cocos2d 遊戲開發實戰(第 2 版)
X
3.5.1 定位點揭秘 ............................. 57
3.5.2 紋理大小 ................................. 57
3.6 CCLabelTTF類 .......................... 58
3.7 選單 ............................................. 59
3.8 動作 ............................................. 61
3.8.1 間隔動作 ................................. 62
3.8.2 瞬時動作 ................................. 67
3.9 cocos2d中的單件類 ................... 69
3.10 cocos2d測試案例 ..................... 71
3.11 本章小結 ................................... 71
第4章 你的第一個遊戲 ...................... 73
4.1 按部就班地創建項目 ................. 73
4.2 添加Player Sprite ....................... 78
4.3 加速計輸入 ................................. 80
4.4 首次測試運行 ............................. 81
4.5 玩家速度 ..................................... 81
4.6 添加障礙物 ................................. 84
4.7 碰撞檢測 ..................................... 91
4.8 標籤和點陣圖字型 ......................... 92
4.8.1 添加得分標籤 ......................... 92
4.8.2 CCLabelBMFont簡介 ............ 93
4.8.3 使用Glyph Designer創建 點陣圖字型 ................................. 94
4.9 播放音頻 ..................................... 95
4.10 移植到iPad ............................... 97
4.10.1 單個通用的應用程式還是 兩個單獨的應用程式 ......... 97
4.10.2 使用Xcode 3移植 到iPad ................................. 98
4.10.3 使用Xcode 4移植 到iPad ................................. 99
4.11 本章小結 ................................. 100
第5章 遊戲組件 ...............................101
5.1 使用多個場景 ........................... 101
5.1.1 添加多個場景 ...................... 101
5.1.2 正在載入下一段,請做好 準備 ...................................... 104
5.2 使用多個層 ............................... 106
5.2.1 實現關卡的最佳方法 .......... 112
5.2.2 CCLayerColor ...................... 113
5.3 從CCSprite類繼承遊戲 對象 ........................................... 114
5.4 使用CCSprite複合遊戲 對象 ........................................... 115
5.5 奇妙的CCNode派生類 ........... 119
5.5.1 CCProgressTimer ................. 119
5.5.2 CCParallaxNode ................... 120
5.5.3 CCRibbon ............................. 122
5.5.4 CCMotionStreak ................... 124
5.6 本章小結 ................................... 125
第6章 深入了解精靈 ........................ 127
6.1 Retina顯示螢幕 ........................ 127
6.2 CCSpriteBatchNode .................. 129
6.2.1 何時使用 CCSpriteBatchNode ............. 131
6.2.2 示例項目 .............................. 131
6.3 精靈動畫初體驗 ....................... 137
6.4 用於創建動畫的輔助類別 ....... 139
6.5 使用紋理圖冊 ........................... 141
6.5.1 何為紋理圖冊 ...................... 141
6.5.2 TexturePacker工具介紹 ...... 141
6.5.3 為TexturePacker準備項目 ... 142
6.5.4 使用TexturePacker創建紋理 圖冊 ...................................... 143
6.5.5 在cocos2d中使用紋理 圖冊 ...................................... 146
6.5.6 改進CCAnimation輔助 類別 ...................................... 147
6.5.7 將所有圖像都放入一個 紋理圖冊中 .......................... 149
6.6 本章小結 ................................... 150
第7章 滾屏射擊遊戲(上) .................. 151
7.1 高級視差滾屏 ........................... 151
7.1.1 將背景創建為條紋 .............. 151
7.1.2 在代碼中重建背景 .............. 153
7.1.3 移動ParallaxBackground ..... 155
目 錄
XI
7.1.4 視差滾動的速度因素 .......... 156
7.1.5 實現背景的無限滾動 .......... 158
7.1.6 消除閃爍 .............................. 160
7.1.7 重複貼圖 .............................. 161
7.2 虛擬手柄 ................................... 162
7.2.1 引入SneakyInput ................. 162
7.2.2 集成SneakyInput ................. 163
7.2.3 觸摸按鈕產生射擊 .............. 165
7.2.4 為按鈕添加皮膚 .................. 166
7.2.5 控制動作 .............................. 169
7.2.6 數字控制 .............................. 171
7.3 本章小結 ................................... 172
第8章 滾屏射擊遊戲(下) ..................173
8.1 添加BulletCache類 ................. 173
8.2 關於敵人 ................................... 177
8.3 Entity類的繼承體系 ................ 178
8.3.1 EnemyEntity類 .................... 179
8.3.2 EnemyCache類 .................... 183
8.3.3 組件類 .................................. 186
8.4 射擊開火 ................................... 189
8.5 大怪物的生命條 ....................... 190
8.6 本章小結 ................................... 193
第9章 粒子效果 ............................... 195
9.1 粒子效果實例 ........................... 195
9.2 用複雜方法創建粒子效果 ....... 198
9.2.1 繼承CCParticleSystem: 點粒子還是方形粒子 .......... 199
9.2.2 CCParticleSystem屬性 ........ 202
9.3 Particle Designer ....................... 210
9.3.1 Particle Designer介紹 ......... 210
9.3.2 使用Particle Designer生成 的粒子效果 .......................... 213
9.3.3 分享粒子效果 ...................... 214
9.4 在射擊遊戲中添加粒子 效果 ........................................... 216
9.5 本章小結 ................................... 217
第10章 瓦片地圖 .............................219
10.1 瓦片地圖簡介 ......................... 219
10.2 使用TexturePacker處理 圖像 ......................................... 222
10.3 Tiled(Qt)地圖編輯器 .............. 223
10.3.1 創建新的瓦片地圖 .......... 223
10.3.2 設計瓦片地圖 .................. 224
10.4 在cocos2d中使用直角瓦片 地圖 ......................................... 227
10.4.1 定位被觸摸的瓦片 .......... 230
10.4.2 提高性能和可讀性 .......... 232
10.4.3 使用對象層 ...................... 233
10.4.4 繪製對象層矩形 .............. 234
10.4.5 滾動瓦片地圖 .................. 237
10.5 本章小結 ................................. 238
第11章 斜角瓦片地圖 ...................... 241
11.1 設計斜角瓦片地圖圖形 ......... 242
11.2 使用Tiled編輯斜角瓦片 地圖 ......................................... 244
11.2.1 新建斜角瓦片地圖 .......... 245
11.2.2 創建新的斜角瓦片集 ...... 246
11.2.3 設計斜角瓦片地圖的基本 規則 .................................. 246
11.3 將斜角瓦片地圖套用到遊戲 編程中 ..................................... 248
11.3.1 在cocos2d中載入斜角 瓦片地圖 .......................... 248
11.3.2 在cocos2d中設定斜角 瓦片地圖 .......................... 248
11.3.3 定位斜角瓦片 .................. 250
11.3.4 滾動斜角瓦片地圖 .......... 252
11.3.5 斜角瓦片地圖的邊界 問題 .................................. 253
11.3.6 增加可移動的玩家角色 ... 255
11.4 在遊戲中加入更多內容 ......... 262
11.5 本章小結 ................................. 263
第12章 物理引擎 ............................. 265
12.1 物理引擎的基本概念 ............. 265
12.2 物理引擎的局限性 ................. 266
12.3 Box2D與Chipmunk ............... 266
iOS 5 cocos2d 遊戲開發實戰(第 2 版)
XII
12.4 Box2D ..................................... 267
12.4.1 Box2D眼中的世界 ......... 268
12.4.2 把移動範圍限制在 螢幕內 .............................. 269
12.4.3 轉換點 .............................. 271
12.4.4 在Box2D世界中添加 盒子 .................................. 272
12.4.5 連線精靈和剛體 .............. 273
12.4.6 碰撞檢測 .......................... 275
12.4.7 連線剛體 .......................... 277
12.5 Chipmunk ................................ 278
12.5.1 面向對象的Chipmunk .... 278
12.5.2 構建Chipmunk物理 空間 .................................. 279
12.5.3 將盒子添加到物理 空間中 .............................. 280
12.5.4 添加小盒子 ...................... 281
12.5.5 更新盒子的精靈 .............. 283
12.5.6 Chipmunk碰撞實踐 ........ 284
12.5.7 Chipmunk中的關節 ........ 285
12.6 本章小結 ................................. 287
第13章 彈球遊戲 .............................289
13.1 圖形:凸多邊形和逆時針 方式......................................... 289
13.2 使用PhysicsEditor .................. 290
13.2.1 定義發射器形狀 .............. 292
13.2.2 定義彈球桌形狀 .............. 293
13.2.3 定義擋板 .......................... 296
13.2.4 定義反彈器和球 .............. 297
13.2.5 保存並發布 ...................... 297
13.3 編寫彈球遊戲 ......................... 298
13.3.1 BodyNode類 ................... 298
13.3.2 創建彈球桌 ...................... 302
13.3.3 Box2D調試繪製 ............. 307
13.3.4 添加球 .............................. 308
13.3.5 使球動起來 ...................... 310
13.3.6 添加反彈器 ...................... 313
13.3.7 發射器 .............................. 314
13.3.8 擋板 .................................. 323
13.4 本章小結 ................................. 326
第14章 Game Center ...................... 329
14.1 激活Game Center ................... 329
14.1.1 在iTunes Connect中創建 應用程式 .......................... 330
14.1.2 建立排行榜和成就 .......... 330
14.1.3 創建cocos2d Xcode 項目 .................................. 331
14.1.4 配置Xcode項目.............. 331
14.1.5 小結 .................................. 334
14.2 Game Kit編程 ........................ 335
14.2.1 GameKitHelper委託 ....... 335
14.2.2 檢查Game Center是否 可用 .................................. 336
14.2.3 驗證本地玩家身份 .......... 337
14.2.4 block對象 ........................ 340
14.2.5 接收本地玩家的好友 列表 .................................. 341
14.2.6 排行榜 .............................. 343
14.2.7 成就 .................................. 348
14.2.8 在線上 .................................. 352
14.2.9 收發數據 .......................... 356
14.3 本章小結 ................................. 360
第15章 cocos2d與UIKit視圖 ......... 361
15.1 Cocoa Touch是什麼 ............... 361
15.2 同時使用Cocoa Touch和 cocos2d.................................... 362
15.2.1 為什麼將Cocoa Touch和 cocos2d混合在一起 ........ 362
15.2.2 混合Cocoa Touch和 cocos2d的局限性 ............ 362
15.2.3 Cocoa Touch和cocos2d 的區別 .............................. 363
15.3 注意:你在cocos2d中的第 一個UIKit視圖 ..................... 364
15.4 在cocos2d應用程式中嵌入 UIKit視圖 .............................. 367
目 錄
XIII
15.4.1 在cocos2d視圖的前面添加 視圖 .................................. 367
15.4.2 使用UIImage改變 UITextField的皮膚 ......... 369
15.4.3 在cocos2d視圖的後面 添加視圖 .......................... 371
15.4.4 添加利用Interface Builder 的視圖設計 ...................... 377
15.4.5 自動鏇轉中的方向問題 .. 380
15.5 在Cocoa Touch應用程式中 嵌入cocos2d視圖 ................. 384
15.5.1 用cocos2d創建基於視圖 的應用程式項目 .............. 384
15.5.2 設計混合應用程式的用戶 界面 .................................. 387
15.5.3 啟動cocos2d引擎 ........... 388
15.5.4 停止和重啟cocos2d 引擎 .................................. 390
15.5.5 改變場景 .......................... 392
15.6 本章小結 ................................. 393
第16章 Kobold2D入門 ....................395
16.1 使用Kobold2D的好處 .......... 396
16.1.1 準備使用Kobold2D ........ 396
16.1.2 免費使用Kobold2D ........ 396
16.1.3 Kobold2D升級簡單 ........ 396
16.1.4 提供類庫服務 .................. 397
16.1.5 Kobold2D的跨平台性 .... 397
16.2 Kobold2D的工作空間 ........... 398
16.3 Hello-Kobold2D模板項目 ..... 399
16.3.1 HelloWorld項目檔案 ...... 399
16.3.2 Kobold2D 如何啟動套用 程式 .................................. 401
16.3.3 用iSimulate運行 HelloWorld ....................... 408
16.4 使用KKInput編寫的針對 Mac的DoodleDrop ............... 409
16.5 使用cocos3d進入3D 世界......................................... 411
16.5.1 AppDelegate類的變化 .... 411
16.5.2 cocos3d世界 .................... 415
16.5.3 將cocos3d添加到現有 的Kobold2D項目中 ....... 417
16.6 本章小結 ................................. 418
第17章 番外篇 ................................. 419
17.1 其他學習和工作資源 ............. 419
17.1.1 尋求幫助 .......................... 420
17.1.2 從源碼項目中受益 .......... 422
17.1.3 Cocos2D Podcast .............. 427
17.1.4 工具介紹 .......................... 427
17.1.5 cocos2d參考應用程式 .... 428
17.2 遊戲行業 ................................. 430
17.2.1 與出版商合作 .................. 431
17.2.2 尋找自由職業者 .............. 432
17.2.3 尋找免費的藝術品 和音頻 .............................. 432
17.2.4 尋找相關工具 .................. 433
17.2.5 市場 .................................. 433
17.2.6 使用更多技術獲得更多 收入 .................................. 436
17.3 本章小結 ................................. 440