內容介紹
《iPhone & iPad cocos2d 遊戲開發實戰》介紹了cocos2d for iPhone 遊戲引擎及相關工具,本書關注的是創建完整cocos2d遊戲的過程而不是展示大量的iPhone SDK 或OpenGL代碼。在學習本書的過程中,通過創建4個示例遊戲,你將了解cocos2d遊戲引擎的核心概念、Objective-C程式語言以及一些相關的工具,如Zwoptex(用於處理材質圖冊)、Particle Desiger(用於實現粒子效果)、Tiled(用於編輯瓦片地圖),等等。
示例遊戲模仿了App Store上流行的遊戲,它們與現實有關、容易理解,而且能很快激發你的興趣並引發靈感。遊戲在複雜性方面有所增強,重點關注cocos2d新手通常會遇到的問題,彌補了cocos2d文檔的不足。閱讀完本書,你將學習到一些看似零散的知識模組,還將學習到如何將它們關聯起來。當由一個初學者轉而做進一步的開發時,你將獲得遊戲開發的技巧、最佳化項目性能的建議,以及多種實現方法和進一步的閱讀指南。
本書需要讀者具備一些開發知識,但不一定是關於Objective-C的。相關的概念,如Xcode、Objective-C、iPhone SDK和OpenGL,會在需要的時候進行討論。
作者介紹
Steffen Itterheim從20世紀90年代開始就一直熱衷於遊戲開發。在Doom和Duke Nukem 3D社區的工作是他的第一份自由職業,當時他是3D Realms的一名beta測試人員。作為職業遊戲開發者,Steffen擁有10多年的豐富經驗,其中大部分時間擔任Electronic Arts Phenomic的遊戲和工具程式設計師。2009年Steffen第一次接觸cocos2d,那時他與其他人共同創辦了一家iOS遊戲公司——Fun Armada。他樂於將自己的寶貴經驗傳授給其他遊戲開發者,以幫助他們更上一層樓。有機會你可能會在白天看到他在住所附近茂密的葡萄園周圍散步,也可能在晚上看到他在Nevada沙漠收集瓶蓋。
作品目錄
目 錄
第1章 簡介 1
1.1 選擇iPhone版cocos2d
的理由 2
1.1.1 免費 2
1.1.2 開源 2
1.1.3 Objective-C 2
1.1.4 2D遊戲引擎 3
1.1.5 物理引擎 3
1.1.6 技術難度較低 3
1.1.7 依然需要編程 3
1.1.8 超棒的cocos2d社區 4
1.2 注意事項 4
1.2.1 Section 3.3.1 4
1.2.2 平台移植 5
1.3 本書讀者對象 5
1.4 閱讀前提 5
1.4.1 編程經驗 5
1.4.2 Objective-C 5
1.5 本書內容 6
1.5.1 iOS遊戲開發新手將
學會什麼 7
1.5.2 iPhone應用程式開發者
將學會什麼 7
1.5.3 cocos2d開發者將學會什麼 7
1.6 章節介紹 8
1.7 問題和反饋 9
第2章 入門 11
2.1 準備工作 11
2.1.1 系統要求 11
2.1.2 註冊成為iOS開發者 12
2.1.3 證書和授權檔案 12
2.1.4 下載並安裝iPhone SDK 12
2.1.5 下載並安裝cocos2d 13
2.2 HelloWorld應用程式 16
2.2.1 HelloWorld檔案在項目中
的位置 16
2.2.2 資源 17
2.2.3 其他資源 17
2.2.4 類 18
2.3 cocos2d中的記憶體管理問題 22
2.4 改變世界 24
2.5 你還應該知道的 26
2.5.1 iOS設備 26
2.5.2 關於記憶體的使用 27
2.5.3 模擬器 29
2.5.4 關於日誌 30
2.6 本章小結 30
第3章 基礎知識 31
3.1 cocos2d中的單件類 31
3.2 Director類 33
3.3 場景圖 33
3.4 CCNode類層次體系 34
3.5 CCNode類 34
3.5.1 節點的處理方式 34
3.5.2 動作的處理方式 35
3.5.3 訊息調度 36
3.6 場景和層 39
3.6.1 CCScene 40
3.6.2 場景和記憶體 40
3.6.3 推進和彈出場景 41
3.6.4 CCTransitionScene 42
3.6.5 CCLayer 43
3.7 CCSprite類 46
3.7.1 定位點揭秘 46
3.7.2 紋理大小 47
3.8 CCLabel類 47
3.9 選單 48
3.10 動作 50
3.10.1 重複動作 50
3.10.2 流暢動作 50
3.10.3 動作序列 51
3.10.4 瞬時動作 52
3.11 cocos2d測試案例 53
3.12 本章小結 53
第4章 你的第一個遊戲 55
4.1 按部就班地創建項目 55
4.2 添加Player Sprite 59
4.3 加速計輸入 62
4.4 首次測試運行 63
4.5 玩家速度 63
4.6 添加障礙物 66
4.7 碰撞檢測 72
4.8 得分標籤 73
4.9 CCBitmapFontAtlas與Hiero
簡介 74
4.10 添加音頻 76
4.11 移植到iPad 76
4.12 本章小結 77
第5章 遊戲組件 79
5.1 使用多個場景 79
5.1.1 添加多個場景 79
5.1.2 正在載入下一段,請做好
準備 81
5.2 使用多個層 83
5.2.1 實現關卡的最佳方法 89
5.2.2 CCColorLayer 90
5.3 從CCSprite類繼承遊戲
對象 90
5.4 使用CCSprite複合遊戲
對象 91
5.5 奇妙的CCNode派生類 96
5.5.1 CCProgressTimer 96
5.5.2 CCParallaxNode 97
5.5.3 CCRibbon 99
5.5.4 CCMotionStreak 100
5.6 本章小結 101
第5章 深入了解精靈 103
6.1 CCSpriteBatchNode 103
6.1.1 何時使用
CCSpriteBatchNode 104
6.1.2 示例項目 105
6.2 精靈動畫初體驗 110
6.3 用於創建動畫的輔助類別 112
6.4 使用紋理圖冊 114
6.4.1 何為紋理圖冊 114
6.4.2 Zwoptex工具介紹 114
6.4.3 使用Zwoptex桌面版創建
紋理圖冊 115
6.4.4 在cocos2d中使用紋理
圖冊 117
6.4.5 改進CCAnimation輔助
類別 119
6.4.6 將所有圖像都放入一個
紋理圖冊中 120
6.5 自己動手 121
6.6 本章小結 122
第7章 滾屏射擊遊戲(上) 123
7.1 高級視差滾屏 123
7.1.1 將背景創建為底紋 123
7.1.2 在代碼中重建背景 125
7.1.3 移動ParallaxBackground 126
7.1.4 視差滾動的速度因素 127
7.1.5 實現背景的無限滾動 129
7.1.6 消除閃爍 131
7.1.7 重複貼圖 132
7.2 虛擬手柄 133
7.2.1 引入SneakyInput 133
7.2.2 集成SneakyInput 134
7.2.3 觸摸按鈕產生射擊 135
7.2.4 為按鈕添加皮膚 137
7.2.5 控制動作 139
7.2.6 數字控制 142
7.2.7 另一個選擇:GPJoystick 143
7.3 本章小結 143
第8章 滾屏射擊遊戲(下) 145
8.1 添加BulletCache類 145
8.2 關於敵人 149
8.3 Entity類的繼承體系 151
8.3.1 EnemyEntity類 151
8.3.2 EnemyCache類 155
8.3.3 組件類 159
8.4 射擊開火 161
8.5 大怪物的生命條 163
8.6 本章小結 165
第9章 粒子效果 167
9.1 粒子效果實例 167
9.2 用複雜方法創建粒子效果 170
9.2.1 變化度屬性 173
9.2.2 粒子數量 173
9.2.3 發射器持續時間 174
9.2.4 發射器模式 174
9.2.5 粒子位置 176
9.2.6 粒子大小 177
9.2.7 粒子方向 177
9.2.8 粒子生存期 177
9.2.9 粒子顏色 178
9.2.10 粒子混合模式 178
9.2.11 粒子貼圖 179
9.3 Particle Designer介紹 180
9.3.1 使用Particle Designer生成
的粒子效果 182
9.3.2 分享粒子效果 183
9.4 在射擊遊戲中添加粒子
效果 185
9.5 本章小結 186
第10章 瓦片地圖 189
10.1 瓦片地圖簡介 189
10.2 使用Zwoptex處理圖片 191
10.3 Tiled地圖編輯器 193
10.3.1 創建新的瓦片地圖 193
10.3.2 設計瓦片地圖 194
10.4 在cocos2d中使用直角
瓦片地圖 196
10.4.1 定位被觸摸的瓦片 199
10.4.2 提高性能和可讀性 201
10.4.3 使用對象層 202
10.4.4 繪製對象層矩形 203
10.4.5 滾動瓦片地圖 206
10.5 本章小結 207
第11章 斜角瓦片地圖 209
11.1 設計斜角瓦片地圖圖形 209
11.2 使用Tiled編輯斜角瓦片
地圖 211
11.2.1 新建一個斜角瓦片
地圖 211
11.2.2 創建新的斜角瓦片集 212
11.2.3 設計斜角瓦片地圖的
基本規則 213
11.3 將斜角瓦片地圖套用到
遊戲編程中 214
11.3.1 在cocos2d中載入斜角
瓦片地圖 214
11.3.2 在cocos2d中設定斜角
瓦片地圖 214
11.3.3 定位一個斜角瓦片 216
11.3.4 滾動斜角瓦片地圖 218
11.3.5 斜角瓦片地圖的邊界
問題 219
11.3.6 增加一個可移動的玩家
角色 221
11.4 在遊戲中加入更多內容 228
11.5 本章小結 228
第12章 物理引擎 231
12.1 物理引擎的基本概念 231
12.2 物理引擎的局限性 232
12.3 Box2D與Chipmunk 232
12.4 Box2D 233
12.4.1 Box2D眼中的世界 234
12.4.2 把移動範圍限制在
螢幕內 235
12.4.3 轉換點 237
12.4.4 在Box2D世界中添加
盒子 238
12.4.5 連線精靈和剛體 239
12.4.6 碰撞檢測 240
12.4.7 連線剛體 243
12.5 Chipmunk 244
12.5.1 面向對象的Chipmunk 244
12.5.2 構建Chipmunk物理
空間 244
12.5.3 將盒子添加到物理
空間中 246
12.5.4 添加小盒子 247
12.5.5 更新盒子的精靈 249
12.5.6 Chipmunk碰撞實踐 250
12.5.7 Chipmunk中的關節 251
12.6 本章小結 253
第13章 彈球遊戲 255
13.1 圖形:凸多邊形和逆時針
方式 255
13.2 套用VertexHelper 256
13.3 創建彈球桌 258
13.4 加入動態元素 264
13.4.1 BodyNode類 264
13.4.2 球 267
13.4.3 反彈器 271
13.4.4 發射器 272
13.4.5 擋板 276
13.5 本章小結 280
第14章 Game Center 281
14.1 激活Game Center 281
14.1.1 在iTunes Connect中
創建應用程式 282
14.1.2 建立排行榜和成就 282
14.1.3 創建cocos2d Xcode
項目 283
14.1.4 配置Xcode 項目 284
14.1.5 小結 286
14.2 Game Kit編程 287
14.2.1 GameKitHelper代理 287
14.2.2 檢查Game Center是否
可用 289
14.2.3 驗證本地玩家身份 289
14.2.4 block對象 292
14.2.5 接收本地玩家的好友
列表 294
14.2.6 排行榜 296
14.2.7 成就 300
14.2.8 在線上 304
14.3 本章小結 308
第15章 番外篇 311
15.1 一些有用的技術 311
15.1.1 社交網路 312
15.1.2 套接字伺服器技術 313
15.1.3 廣告和分析 313
15.1.4 推送通知供應商 314
15.2 從源碼項目中受益 314
15.2.1 Sapus Tongue 315
15.2.2 LevelSVG 315
15.2.3 iPhone RPG Game Kit 315
15.2.4 Line-Drawing Game
Starterkit 316
15.3 參考 316
15.4 與出版商合作 317
15.5 尋找自由職業者 318
15.6 尋找免費的藝術品和
音頻 319
15.7 尋找交易工具 319
15.8 市場 320
15.8.1 行銷遊戲和自己 320
15.8.2 公關和新聞發布 321
15.9 尋求幫助 322
15.9.1 cocos2d首頁 323
15.9.2 棧交換網路 323
15.9.3 教程和常見問題解答 324
15.10 寫在最後 324
15.11 本章小結 325