图书目录

第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

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

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

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

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