目 錄
第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
· · · · · · (
收起)