具体描述
《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
· · · · · · (收起)
读后感
非常不错,但是翻译的不是很好,偶尔有印刷错误。 书的内容非常好,讲述方式和普通的大纲式教学很不一样,这里基本是让你通过一些很常用的例子来学习cocos2d。需要自己不端查文档,看原书代码。 初看上去书很薄,不过里面没有印全部代码,需要自己下载来看。 初学者如果功底不...
想写手机游戏玩玩,无奈折腾Android上主流的LibGDX和Andengine两大引擎都跑不出一个成功的HelloWorld,只好转投iOS了。 Cocos2D引擎源于Python,移植到iPhone平台后非常成功,与Unity3D成为iOS开发的主流。联通支持下的C++重写,主打跨平台的Cocos2d-X也在慢慢发展。现在还有C...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看...
为零基础的“设想过自己写个电脑游戏软件并从中获利吗?”——这是本书第一章的第一句话。 通过阅读本书,读者会发现这是一本非常适合初学者的的iOS游戏编程书; 阅读本书的必备知识: 买一本书,就是为了学习。如果一本书到手,却发现自己根本用不到或看不懂,那就悲剧...
用户评价
总的来说,这本书带给我的感觉是“踏实”和“可靠”。它不是那种追逐最新版本热点、但基础知识点一笔带过的快餐读物。相反,它更像是一位经验丰富的老兵,耐心地指导新兵如何穿上全套铠甲。我个人对它在第三方库集成方面的处理印象深刻。现代游戏开发很少是纯粹的引擎工作,总需要接入支付 SDK、广告平台或者数据分析工具。书中详细介绍了如何在 Cocos2d 的生命周期中,无缝地嵌入这些平台特定的原生代码(Objective-C/Swift 部分),并确保它们不会干扰到引擎的渲染循环。这种跨越原生与脚本层的集成方法论,是许多单纯讲解引擎语法的书籍所缺乏的,它真正体现了“实战”二字所蕴含的复杂性和系统性,让读者能够真正构建出一个可以发布到 App Store 的商业级应用。
这本教材的封面设计就相当吸引人,色彩搭配和字体选择透露着一股现代感和科技范儿,让人一眼就能感受到这是一本紧跟时代脉搏的实战指南。我之所以选择它,很大程度上是冲着“iPhone & iPad”这个明确的平台指向性去的,毕竟现在移动游戏市场的主战场依然是苹果生态系统,掌握这方面的开发技术是刚需。更重要的是,它冠以“实战”二字,这对我这种动手能力强、更倾向于通过项目驱动学习的开发者来说,无疑是一剂强心剂。我期待书中能有大量详尽的、可复制的代码示例,能够手把手地带领我从零基础搭建起一个完整的游戏框架,而不是空泛地讲解理论概念。我希望书中能深入剖析 Cocos2d 引擎在 iOS 平台上的优化技巧,比如如何高效地处理触摸事件、如何利用 Metal 或 OpenGL ES 的特性来提升渲染性能,尤其是在 Retina 屏幕和新款 iPad Pro 上运行复杂场景时的帧率保证,这些都是决定游戏用户体验的关键因素。如果能针对性地讲解 Apple 审核指南中关于游戏类应用的一些常见陷阱和快速通过的技巧,那就更完美了。
阅读过程中,我发现这本书的叙事风格非常平易近人,尽管它讨论的是相对硬核的引擎底层逻辑和性能调优,但作者总能用清晰的逻辑链条把复杂的概念串联起来。举个例子,在讲解物理引擎集成和碰撞检测的回调机制时,它没有简单地罗列 API 函数,而是构建了一个虚拟的关卡场景,然后逐步添加对象、定义边界,最后展示如何精确地捕获和响应特定类型的碰撞,这一点对于理解游戏逻辑与物理系统的交互至关重要。更值得称赞的是,它似乎预判了读者可能遇到的所有“坑”。比如,在处理横竖屏切换导致的坐标系混乱问题时,书里提供了一个非常优雅的解决方案,这绝对是实战经验的结晶,而不是纸上谈兵。读完相关的章节后,我立刻去尝试修改了我早期项目中一个棘手的界面布局问题,效果立竿见影,极大地提升了我的开发效率。
从我对 Cocos2d 引擎的理解来看,这本书的覆盖面做到了广度与深度的完美平衡。它不仅仅局限于 2D 游戏的制作,对于一些 2.5D 的视觉效果的实现,也给出了非常实用的技巧和代码片段。比如,如何利用层级和 Z 轴排序配合简单的视差滚动,来模拟出空间深度感,这种对视觉效果的关注,显示了作者对最终用户体验的重视。此外,这本书在网络通信方面的介绍虽然不是重点,但它提供了一个基于 Socket 的基础心跳包和断线重连的示例框架,这为想要开发轻量级多人在线功能的用户打下了坚实的基础。要知道,在移动端处理网络的不稳定性和延迟,是一门大学问,这本书能触及这一点,说明其内容规划非常周全,考虑到了游戏从单机走向联网的必然趋势。
坦白说,我刚翻开这本书时,心里还有一丝疑虑,因为市面上很多声称“实战”的技术书籍,内容往往停留在“搭个积木”的初级阶段,无法应对真实项目中的复杂需求。然而,这本书的结构和深度很快打消了我的顾虑。它没有浪费笔墨在那些人尽皆知的引擎基础操作上,而是迅速切入了核心的工程化难题。我特别欣赏其中关于资源管理模块的讲解,它清晰地阐述了如何在大型游戏中有效地加载、卸载纹理集和声音文件,避免内存峰值导致的闪退问题。此外,作者对自定义节点和组件的设计模式的探讨,也展现了扎实的软件工程素养,让我明白如何写出易于维护和扩展的代码,而不是写出“一次性”的脚本。这本书的价值在于,它不仅教你怎么“做”,更教你怎么“做好”——如何构建一个健壮、高性能的移动游戏架构。对于想要从业余爱好者转变为专业移动游戏制作人的人来说,这种深度是至关重要的。
很不错的cocos 2d入门书,以前经常看这个的pdf,没想到出版了。
还算不错的教程,考虑到 cocos2d-x 与 cocos2d-iphone 的API 多一一对应,我是把它当作cocos2d-x来看的
cocos2d入门推荐书,深入浅出,讲述了很多cocos2d相关的设计原则和开发上需要注意的地方,并涉及Box2d的使用,基于的是cocos2d 1.x的API。
这本书做游戏编程入门还不错。里面的例子也很好。值得看。
已经啃完一遍了,准备写demo