目录: 第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