描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787111414100
资深专家根据Cocos2D**版本撰写,内容全面,系统讲解了Cocos2D的使用方法、技术要点、工作原理、开发技巧、**实践以及性能优化;实战性强,通过精心设计的典型案例完美呈现了Cocos2D游戏设计与开发的完整过程,极富启发性。
本书是目前Cocos2D领域内容全面、系统和深入的一本著作,也是技术版本*的一本著作。由国内iOS和Cocos2D领域的先驱和资源专家撰写,不仅系统讲解了Cocos2D的使用方法、技术要点、工作原理、高级知识、开发技巧、*实践和性能优化,而且通过精心设计的典型案例详细讲解了Cocos2D游戏设计与开发的完整过程,极具启发性和可操作性。此外,还介绍了如何进行应用的测试与发布,以及Cocos3D、Cocos2D-x、Cocos2D-HTML5、Cocos2D-Python等衍生技术。全书共19章,分为三个部分:基础篇(第1~9章)系统讲解了Cocos2D
v2.0的功能特性、使用方法、技术要点和工作原理,通过超级玛丽等3个经典游戏将Cocos2D中的核心类、动作、特效、动画、文本渲染系统、事件处理机制、声音、瓷砖地图、Box2D等内容贯穿其中,真实有趣,易于理解;实战篇(第10~12章),通过对Angel
Panda和Angry
Panda两款经典游戏的设计与开发过程的讲解,为读者展示了使用Cocos2D开发游戏的完整流程,可操作性极强;高级篇(第13~19章),着重讲解了Cocos2D
v2.0的高级知识、实用开发技巧和*实践,包括粒子系统、CocosBuilder和Shader、在游戏中添加对IAP的支持、性能分析与优化、产品的测试/发布/推广,以及Cocos2D的延伸技术。
前 言
部分 基础篇
第1章 开始前的准备工作
1.1 什么是Cocos2D
1.1.1 Cocos2D的特点
1.1.2 Cocos2D的主要功能
1.1.3 Cocos2D应用
1.2 下载与安装
1.2.1 下载Cocos2D
1.2.2 安装Cocos2D模板
1.2.3 创建Cocos2D-iPhone的帮助文档
1.2.4 使用Cocos2D中内置的项目
1.3 HelloCocos2D实例
1.3.1 创建HelloCocos2D项目
1.3.2 添加小飞机
1.3.3 让飞机飞行
1.4 深入学习HelloCocos2D项目
1.4.1 初识场景和节点
1.4.2 实现代码分析
1.5 在设备上运行HelloCocos2D项目
1.5.1 使用Xcode的自动设置
1.5.2 在设备上编译运行项目
1.6 本章小结
第2章 你的款iPhone游戏—垂直射击游戏
2.1 准备工作
2.2 构建游戏场景
2.2.1 添加资源目录
2.2.2 添加游戏背景
2.2.3 添加玩家飞机
2.2.4 添加敌机
2.3 玩家交互
2.3.1 添加加速计移动
2.3.2 添加子弹并射击
2.4 碰撞检测
2.5 游戏音效
2.6 后的点缀
2.6.1 添加计分和玩家生命值
2.6.2 添加游戏胜利和结束画面
2.7 本章小结
第3章 Cocos2D核心类
3.1 Cocos2D节点基础知识
3.1.1 节点层级图
3.1.2 什么是锚点
3.2 CCNode节点类
3.2.1 CCNode类的属性
3.2.2 CCNode类的方法
3.3 CCScene场景类
3.3.1 CCTransitionScene场景切换
3.3.2 Cocos2D支持的场景过渡效果
3.4 CCLayer层类
3.4.1 CCLayer类的作用
3.4.2 CCLayerColor色彩层
3.4.3 CCLayerGradient渐变色层
3.4.4 CCMenu菜单类
3.5 CCTexture纹理类
3.5.1 纹理和纹理图集
3.5.2 CCTexture2D、CCTextureCache和CCTextureAtlas
3.6 CCSprite精灵类
3.6.1 CCSprite类的属性及方法
3.6.2 CCSpriteBatchNode精灵表单
3.6.3 CCSpriteFrame精灵帧
3.6.4 CCSpriteFrameCache精灵帧缓存
3.7 Cocos2D中的单例
3.7.1 Cocos2D中的常用单例
3.7.2 CCDirector导演类
3.8 垂直射击游戏—加载游戏数据
3.8.1 注释draw方法和背景
3.8.2 加载游戏资源
3.8.3 修改AppDelegate.m文件
3.8.4 修改HelloWorldLayer
3.8.5 代码重构
3.9 本章小结
第4章 Cocos2D中的动作、特效与动画
4.1 Cocos2D中的节点动作
4.1.1 运行ActionsTest测试
4.1.2 Cocos2D中的动作类
4.2 动作的分类及使用
4.2.1 基本动作
4.2.2 组合动作
4.2.3 Ease动作
4.2.4 延迟动作
4.2.5 方法回调动作
4.2.6 块语句调用动作
4.2.7 反转动作
4.2.8 特殊动作
4.3 垂直射击游戏:加载进度条与滚动背景
4.3.1 使用CCProgressTo和CCProgressFromTo动作添加进度条
4.3.2 使用CCFollow和CCParallaxNode动作添加滚动背景
4.4 Cocos2D中的特效
4.4.1 Cocos2D中的网格
4.4.2 特效的种类及使用
4.4.3 让节点对象返回初状态
4.5 Cocos2D中的动画
4.5.1 Cocos2D中与动画相关的类
4.5.2 在Cocos2D中实现动画效果
4.6 使用Zwoptex工具实现动画效果
4.6.1 安装Zwoptex工具
4.6.2 制作精灵表单
4.6.3 制作精灵动画
4.7 垂直射击游戏—添加飞行和爆炸动画
4.7.1 添加玩家飞机飞行动画
4.7.2 添加飞机爆炸效果
4.8 本章小结
第5章 Cocos2D中的文本渲染系统
5.1 文本渲染系统的组成
5.1.1 CCLabelTTF类
5.1.2 CCLabelAtlas类
5.1.3 CCLabelBMFont类
5.2 标签的对齐方式
5.3 使用第三方工具创建字体纹理图集
5.3.1 Hiero工具的使用方法
5.3.2 创建字体图集步骤
5.4 垂直射击游戏—美化游戏界面
5.4.1 渲染文本
5.4.2 实现倒计时功能
5.5 本章小结
第6章 Cocos2D中的事件处理机制
6.1 iOS中的交互事件处理
6.1.1 什么是用户输入事件
6.1.2 多点触摸事件处理机制
6.1.3 重力感应事件处理机制
6.2 Cocos2D中的触摸事件处理
6.2.1 如何处理触摸事件
6.2.2 模板中自带的TouchesTest项目
6.2.3 实战—随手指移动的小球
6.3 Cocos2D中的重力感应事件
6.3.1 如何处理重力感应事件
6.3.2 实战—受加速计控制的小球
6.4 垂直射击游戏—暂停游戏
6.4.1 PauseLayer类的实现
6.4.2 CustomMenu类的实现
6.4.3 游戏主场景添加暂停层
6.4.4 PauseLayerProtocol代理
6.5 本章小结
第7章 Cocos2D世界的声音
7.1 认识CocosDenshion音效引擎
7.1.1 CocosDenshion重要API
7.1.2 CocosDenshion相关类
7.1.3 Cocos2D支持的CocosDenshion
7.2 SimpleAudioEngine使用方法
7.2.1 添加背景音乐
7.2.2 控制音乐的播放和停止
7.2.3 判断当前是否播放背景音乐
7.2.4 添加音效
7.3 CDSoundEngine使用方法
7.3.1 设置CDSoundEngine
7.3.2 播放背景音乐和音效
7.4 游戏菜单中的声音设置选项
7.5 垂直射击游戏—GameOver
7.5.1 实现背景音乐暂停功能
7.5.2 实现菜单场景
7.5.3 实现高分榜场景
7.5.4 实现GameOver场景
7.6 本章小结
第8章 在Cocos2D中使用瓷砖地图
8.1 认识瓷砖地图
8.2 Tiled地图编辑器
8.2.1 安装Tiled
8.2.2 用Tiled绘制地图
8.2.3 在地图中添加对象
8.3 在项目中使用瓷砖地图
8.3.1 TMX文件解析
8.3.2 Cocos2D中的瓷砖地图类
8.3.3 在项目中载入TMX地图
8.3.4 使用TMX地图中的对象
8.4 超级玛丽—实现简单的原型
8.4.1 准备工作
8.4.2 创建高清版本Tiled地图
8.4.3 在代码里加载Tiled地图
8.4.4 利用WBTMXTool工具制作普清版本Tiled地图
8.4.5 添加遥感控制器
8.5 本章小结
第9章 物理引擎—更真实的Cocos2D世界
9.1 游戏物理引擎概况
9.1.1 物理引擎的应用
9.1.2 常见的游戏物理引擎
9.2 认识Box2D
9.2.1 Box2D碰撞检测和处理系统
9.2.2 Box2D中的核心概念
9.3 示例项目HelloBox2D详解
9.3.1 使用模板创建HelloBox2D项目
9.3.2 解读HelloBox2D默认项目代码
9.3.3 完善HelloBox2D项目
9.4 Box2D实战—物理射击游戏
9.4.1 准备工作
9.4.2 创建会转动手臂的小人
9.4.3 发射子弹
9.4.4 使用PhysicEditor工具制作凹槽
9.4.5 凹槽实现升降机效果
9.4.6 处理碰撞传感器
9.4.7 加入更多障碍
9.5 超级玛丽—Box2D与Tiled结合
9.5.1 添加玛丽和物体的物理属性
9.5.2 使玛丽行走和跳跃
9.5.3 为游戏中的金币和箱子添加物理属性
9.5.4 碰撞检测—吃金币
9.5.5 游戏特效—吸金币
9.5.6 加入游戏音效
9.5.7 设计胜利和失败条件
9.6 本章小结
第二部分 实战篇
第10章 Angel Panda游戏的设计与实现
10.1 iOS游戏完整的制作流程
10.2 Angel Panda游戏设计
10.2.1 Angel Panda的创意来源
10.2.2 Angel Panda的故事背景及游戏规则
10.2.3 Angel Panda的游戏体验流程
10.3 开发前的准备工作
10.3.1 下载并安装合适的开发工具
10.3.2 将项目分解成不同的模块
10.3.3 准备游戏中所需要的资源
10.4 Angel Panda游戏的实现
10.4.1 使用Cocos2D模板创建新项目
10.4.2 设置游戏主场景
10.4.3 添加游戏角色
10.4.4 添加用户交互机制
10.4.5 添加游戏逻辑
10.4.6 添加音效
10.5 本章小结
第11章 AngryPanda游戏的设计与框架搭建
11.1 AngryPanda游戏设计
11.1.1 AngryPanda的创意来源
11.1.2 AngryPanda的故事背景及游戏规则
11.1.3 AngryPanda的游戏体验流程
11.2 开发前的准备工作
11.2.1 下载并安装合适的开发工具
11.2.2 将项目分解成不同的模块
11.2.3 准备游戏需要的资源
11.2.4 使用Box2D模板创建新项目
11.3 数据存储和游戏设置
11.3.1 创建和实现GameData类
11.3.2 GameData类中的重要方法
11.3.3 创建Constants.h头文件
11.4 游戏中的音效管理
11.4.1 创建GameSounds类
11.4.2 GameSounds类中的重要方法
11.5 游戏中的辅助界面
11.5.1 游戏开始界面
11.5.2 游戏介绍界面
11.5.3 关卡选择界面
11.5.4 关卡结束界面
11.6 本章小结
第12章 Angry Panda游戏主场景的实现
12.1 Box2D世界的物体
12.1.1 创建抽象物体类
12.1.2 创建熊猫角色
12.1.3 创建平台物体
12.1.4 创建外星怪物
12.1.5 创建遮挡物体
12.1.6 创建并放置攻击目标
12.2 实现游戏的主场景
12.2.1 创建MainScene类
12.2.2 场景的视觉呈现
12.2.3 如何与用户交互
12.2.4 实现游戏的逻辑机制
12.3 游戏中的碰撞检测机制
12.3.1 创建ContactListener类
12.3.2 碰撞检测机制的实现
12.4 本章小结
第三部分 高级篇
第13章 粒子系统
13.1 Cocos2D中的粒子系统
13.1.1 粒子系统相关的类
13.1.2 Cocos2D内置的粒子系统
13.2 手动创建粒子系统示例
13.2.1 创建ParticleEffect项目
13.2.2 添加Cocos2D内置的粒子系统
13.2.3 手动创建粒子系统类
13.2.4 设置粒子系统的属性
13.3 plist文件
13.3.1 particle.plist文件内容
13.3.2 使用plist文件创建粒子系统
13.4 粒子工具Particle Designer
13.4.1 下载安装Particle Designer
13.4.2 Particle Designer工具栏
13.4.3 如何设置Emitter Config属性
13.4.4 如何在项目中使用粒子系统
13.5 本章小结
第14章 CocosBuilder和Shader
14.1 CocosBuilder初体验
14.1.1 下载安装CocosBuilder
14.1.2 查看Example目录结构
14.1.3 如何打开样例文件
14.2 个CocosBuilder项目
14.2.1 创建HelloWorldCocosBuilder场景
14.2.2 加载HelloWorldCocosBuilder场景
14.2.3 建立文档与代码的连接
14.2.4 完善HelloWorldCocosBuilder场景
14.3 HelloWorldCocosBuilder项目功能完善
14.3.1 制作GameMenu场景
14.3.2 制作About场景
14.3.3 发布ZIP格式场景资源文件
14.3.4 如何支持多个设备分辨率
14.4 着色器
14.4.1 着色器的种类及工作原理
14.4.2 编写自己的Shader程序
14.4.3 如何为Sprite定制顶点着色器
14.4.4 如何定制片段着色器
14.4.5 旋风效果示例
14.5 本章小结
第15章 在游戏中添加对Game Center的支持
15.1 什么是Game Center
15.1.1 Game Center的功能
15.1.2 Game Center的特点
15.2 在项目中添加对Game Center的支持
15.2.1 注册iOS开发者账号
15.2.2 为应用创建并设置App ID
15.2.3 在iTunes Connect中注册应用
15.2.4 开启对Game Center的支持
15.2.5 在iTunes Connect中添加成就系统
15.2.6 在iTunes Connect中设置积分排行榜
15.3 示例项目GKTapper详解
15.3.1 添加Game Kit框架
15.3.2 检查Game Center是否可用
15.3.3 验证玩家是否登录Game Center
15.3.4 实现成就系统
15.3.5 实现积分排行榜
15.4 本章小结
第16章 在游戏中添加对IAP的支持
16.1 什么是IAP
16.1.1 IAP的功能
16.1.2 IAP中的商品类型
16.1.3 IAP实现机制
16.2 Store Kit Framework介绍
16.2.1 Store Kit Framework中的购买核心类
16.2.2 Store Kit Framework中的商品核心类
16.2.3 SKDownload类
16.2.4 Store Kit Framework中的协议
16.3 在iTunes Connect配置IAP
16.3.1 在iTunes Connect中添加商品信息
16.3.2 在iTunes Connect中添加沙盒测试账号
16.4 在项目中添加与IAP相关的代码
16.4.1 IAPGame项目简介
16.4.2 在项目中添加Store Kit框架
16.4.3 添加MyStore类
16.5 在设备中测试并提交审核
16.6 本章小结
第17章 游戏性能分析与优化
17.1 如何发现性能瓶颈
17.1.1 Instruments基本功能
17.1.2 Instruments中内置的分析工具
17.1.3 如何使用Time Profiler工具模板
17.1.4 如何使用OpenGL ES Driver工具模板
17.1.5 使用空白模板创建定制分析工具
17.2 Cocos2D内置的性能分析工具
17.2.1 CCProfiler和CCProfilingTimer
17.2.2 如何使用性能分析工具
17.3 优化Cocos2D游戏性能
17.3.1 在Cocos2D中开启自动引用计数
17.3.2 使用CCSpriteBatchNode 替代CCSprite
17.3.3 提升游戏性能的其他技巧
17.4 本章小结
第18章 产品的测试、发布与推广
18.1 用户体验测试
18.1.1 测试用户的选择
18.1.2 产品测试的步骤
18.2 产品的上传与发布
18.2.1 加入iOS开发者计划
18.2.2 在App Store中发布产品
18.3 App产品的宣传与推广
18.3.1 产品推广的原因
18.3.2 产品推广的方法
18.4 本章小结
第19章 Cocos2D的延伸
19.1 Cocos3D简介
19.1.1 Cocos3D的基本特性
19.1.2 Cocos3D核心类简介
19.1.3 下载并安装Cocos3D
19.2 Cocos2D-x 简介
19.2.1 创建iOS版的HelloWorld项目
19.2.2 创建基于Cocos2D-x的Android项目
19.3 Cocos2D-HTML5详解
19.3.1 Cocos2D-HTML5简介
19.3.2 下载安装Cocos2D-HTML5
19.3.3 安装配置WebServer(可选)
19.3.4 解析helloHTML5World项目
19.4 Cocos2D-Python简介
19.5 本章小结
Cocos2D是当前在移动平台上开发互动娱乐应用的*2D游戏引擎,深受iOS和Android平台游戏开发人员的喜爱。Cocos2D以其简单易学、强大的功能和效率使开发人员可以在短时间内迅速制作出游戏原型,极大地提高了开发效率。更为重要的是,当前Cocos2D引擎家族开发者设立了清晰的未来发展目标,也即为创建多平台的2D网络或移动游戏提供强大的工具,并提供了Cocos2D-HTML5、Cocos2D-iPhone、Cocos2D-x及CocosBuilder等多个衍生版本及工具。目前App
Store及Android市场上大多数的畅销2D游戏均采用Cocos2D及其衍生版本创建,学习与掌握好Cocos2D是移动平台2D游戏开发的必然趋势。与市场上其他学习Cocos2D的书籍不同,本书对于Cocos2D引擎的技术细节做了详细的阐述和说明,并提供了针对性的示例项目讲解说明。既有利于初学者迅速了解Cocos2D引擎的基本使用,同时也便于有一定经验的开发者作为工具书查询相关技术细节。此外,本书还提供了两个综合示例,这有助于开发者从近似实战的角度来了解如何使用Cocos2D引擎。后,针对项目开发的实际需要,还特别介绍了Cocos2D引擎家族的其他衍生版本和CocosBuilder工具。目前,基于移动终端的游戏开发如火如荼,当大家看到一个又一个神话诞生的时候肯定都跃跃欲试了。但很多人苦于不是计算机专业或游戏相关专业毕业的而无法进入该行业,“游戏开发=程序员”是一种错误的认识,目前更重视创意和设计,因为大量的工具、引擎为游戏设计做好了铺垫。如果你想从事游戏开发,强烈建议阅读本书,本书可以让你在极短的时间内通过Cocos2D开发出属于自己的游戏。
—— 李万鹏 成都优聚科技(GoodTeam Studio) CEO(旗下知名游戏:帝国塔防系列)
Cocos2D-iPhone和Cocos2D-x近年来在移动游戏开发者中广泛流行,它为大量PC平台游戏开发者转向移动平台开发抹平了学习曲线,并成为很多卖座游戏成功的基石。本书作者拥有丰富的移动平台开发经验,书中对基于Cocos2D-iPhone的移动游戏开发进行了全面深入的介绍,并提供了丰富的代码示例,相信可以让有意从事移动游戏开发的同学迅速入门,并打下坚实的基础。
—— 李勇 深圳盛游网络科技有限公司CEO
【前言】
为什么要写这本书
2011年10月5日,秋风萧瑟,阴雨绵绵,在这颗蔚蓝色的美丽星球上,一代传奇伟人乔布斯在亲友的陪伴下安然离去,宛若流星划过天际,空留那辆银色的奔驰SL55AMG在落叶纷飞中孤独守候着曾经的主人。这个世界从此失去了一位引领科技创新的时代领袖。
从1976年在父母的车库中创业开始,乔布斯参与、开创并改变了几个行业—PC、电脑动画、数字音乐、移动互联网。他创办了苹果公司,中途又因某些原因被苹果驱逐。然而在苹果挣扎于濒死的边缘时,他又挺身而出将苹果救活,并把它推到无人可以企及的高度。我们有幸生活在这个伟大的时代,更有幸恩泽于此。在WINTEL主宰行业的微软时代,面向个人消费者的软件开发市场几乎被淹没在时代的浪潮中。无论是一般的应用软件市场,还是游戏软件市场,都被牢牢掌握在行业巨头的手中。正是乔布斯和苹果推出的iPhone以及App
Store生态链,改变了千千万万软件开发者的命运。乔布斯不仅为世人带来了令人惊叹的美妙产品,更为众多的个人开发者和中小软件开发商创造了一个全新的市场,让他们得以完全释放自己无尽的创造力和想象力。
自2007年苹果推出代iPhone以来,整个移动互联网的生态系统被彻底颠覆。2008年,苹果推出了iPhone OS和App
Store,在短短两年半的时间内,App
Store中的相关应用下载次数就达到了150亿次,而开发者的收入也高达25亿美元。而到2012年6月,App
Store的应用下载量已突破300亿次,再次铸就了这个时代的一个神话。2012年9月,iPhone
5在万众期待中揭开了神秘的面纱,在短短一周之内就售出500万部。当然还有刚刚发布的iPad Mini,以及传说中的Apple
TV……这些设备无疑将大大增加使用iOS的用户基数。在App
Store中,吸引人的软件类型毫无疑问就是游戏和娱乐应用了。《Angry Birds》、《Talking Tom》、《Tiny
Wings》等这些下载次数和吸金数量令人咋舌的游戏,都是由草根团队甚至个人开发的。这些游戏开创了移动互联网时代的新神话!
《Angry Birds》《愤怒的小鸟》作为App Store的一款划时代的作品,吸引了更多的开发者进入苹果应用商店。要想在App
Store中取得成功,天马行空般的创意和想象力仍然是制胜的法宝,同时对市场需求的理解和把握也变得越来越重要。但由于App
Store中的应用数量已经突破65万,所以必须采用快速迭代的开发方式,在尽可能短的时间内设计出游戏的原型并开发出可以上线的版本。使用苹果的原生开发框架可以迅速开发部署各类移动应用,但在开发互动性较强的游戏上却稍显复杂和缓慢。开发者需要掌握Core
Foundation、Core Animations、Core Graphics、OpenGL
ES、OpenAL等一系列框架,这就使得iOS游戏开发的学习曲线变得陡峭,也使得开发周期大大延长。在这种情况下,各种针对iOS平台的第三方游戏开发框架横空出世并被广大开发者所喜欢,Cocos2D可谓其中成功的一款。
作为一个开源的Objective-C框架,Cocos2D用于在iOS和Mac OS
X系统上制作2D游戏。使用Cocos2D,开发者可以轻松地开发iPhone、iPod
Touch、iPad和Mac上的游戏。Cocos2D被人诟病,说其对3D游戏引擎的支持不足,但当前基于Cocos2D架构、同样开源的Cocos3D将在未来完美地解决这一问题!
在苹果App Store中,使用Cocos2D及其衍生版本开发出的曾登顶榜首的游戏可谓数不胜数,如《Tiny Wings》、《Feed
Me Oil》等。2011年的苹果游戏Tiny Towers也是用Cocos2D开发的。《Angry
Birds》是基于Box2D物理引擎开发出来的,但Cocos2D完美支持Box2D物理引擎!曾长期位居中国区收入榜首的《神仙道》、《忘仙》等游戏也是采用Cocos2D的衍生版本Cocos2D-x开发的。开发者应用Cocos2D开发游戏,需要的只是充分发挥自己的创意和想象力!
2011年6月,在社交游戏的浪潮中如火箭般崛起的Zynga收购了Cocos2D,但仍然将其作为一个开源框架,从而保证了Cocos2D的长期生命力。更重要的是,由于支持Cocos2D的开发者众多,现在已经衍生了多个版本,如Cocos2D-x、Cocos2D-Android、Cocos2D-HTML5等,但每种版本的核心都几乎完全相同。在掌握了Cocos2D之后,只需稍微了解一下对应的平台和语言,就可以将游戏轻松部署到其他多个平台上。
毫不夸张地说,学会了Cocos2D,即便是一个游戏新手,只要你有足够的创意和想象力,也可以在极短的时间内开发出吸引人的游戏,这大大降低了游戏开发的门槛和难度。游戏开发者可以把关注的焦点放在游戏机制本身的设计上,而不是耗费大量时间学习OpenGL
ES中晦涩难懂的低级API。想要开发下一个《Angry Birds》、《Tiny Wings》、《Feed Me
Oil》?来学Cocos2D吧,让游戏开发成为真正的乐趣!让你的创意在Cocos2D和苹果App
Store生态系统的帮助下启程飞翔!
写这本书的动力来自于分享的乐趣,书中用到的很多源码素材和使用技巧来自Cocos2D官方社区、Cocos2D-x官方社区和Ray
Wenderlich、iphonegametutorials等博客网站。特别要感谢Ray
Wenderlich,正是和他在Twitter、博客及论坛中的学习和交流,让我决定分享自己学习和使用Cocos2D开发游戏的心得。在此也强烈推荐已经学习和掌握了Cocos2D基础开发知识的开发者多去这些社区和博客论坛中分享和交流,让更多的开发者可以学习和分享更优秀的教程。
此外,写这本书除了希望和大家分享这款优秀的游戏开发框架外,还希望让更多的人了解并参与到这个伟大的时代浪潮中。因此,虽然这本书是关于Cocos2D的,但其中也涉及了游戏设计与策划、项目的测试、上传与市场推广等方面的知识。
吴军博士在《浪潮之巅》中提到,科技行业的进步往往不是平缓的,而是如同江河大海中的一波波浪潮。从2008年开始兴起的移动互联网浪潮,将是近十年来科技行业的一次机遇。天下大势,浩浩荡荡,顺之者昌。无论是个人开发者,还是在IT行业中几经波折存活至今的各种规模的公司,都不应错过这次时代的浪潮。无论成功与否,只要参与到这场改变世界的新浪潮中,就一定会有或多或少的收获,至少一生无悔!
读者对象
这里列出了一些可能会对本书感兴趣的读者:
熟悉Objective-C和Xcode、希望通过学习Cocos2D开发iOS游戏的开发人员
熟悉其他面向对象的语言、希望通过学习Cocos2D开发iOS游戏的开发人员
负责iOS游戏项目开发与管理的产品经理
使用Cocos2D开发iOS游戏的公司与组织的成员
开设相关课程的大专院校的师生
如何阅读本书
本书分为三大部分。
部分为基础篇(第1~9章),简单地介绍了Cocos2D
v2.0的基本使用技巧和相关理论,通过款iPhone游戏—垂直射击游戏帮助读者了解一些基础背景知识,并基本掌握Cocos2D
v2.0的各种特性。其中包括Cocos2D中的动画、文本渲染系统、Cocos2D中的事件处理机制、如何设置游戏的音效等内容。后,通过超级玛丽和物理射击游戏的实现,详细介绍了如何在Cocos2D中使用瓷砖地图和物理引擎Box2D使游戏更加真实有趣。
第二部分为实战篇(第10~12章),通过对两款简单游戏Angel Panda和Angry
Panda的讲解,让读者了解一个完整的使用Cocos2D开发游戏的流程。
第三部分为高级篇(第13~19章),着重讲解Cocos2D
v2.0的部分高级和实用技巧,包括粒子系统、CocosBuilder和Shader、在游戏中添加对Game
Genter和IAP的支持、性能优化、如何进行用户测试与发布等,后简单介绍了Cocos2D的延伸。
其中第二部分以接近实战的示例来讲解游戏开发,相比于其他两部分更独立。如果你对Cocos2D开发的基础知识和使用技巧已经有所了解,可以直接阅读这部分内容。但如果你是一名初学者,请从第1章的基础理论知识开始学习。
相对于此前已出版的国外的同类书籍,本书更强调学习和实践的系统性和完整性,而非零散地掌握各个知识点。此外,本书在写作的过程中始终密切关注版本的更新变化,无论在理论和实战部分都采用的框架版本(v2.0),以避免开发者学习时可能会遇到的版本问题。
需要注意的是,认真学习本书只是一个起点,要想在iOS移动游戏开发的路上走得更远,还需要参与更多的实际项目的开发,学习各类案例教程和知识,了解游戏策划与设计以及市场需求分析等各方面的知识。路漫漫其修远兮,吾将上下而求索!
勘误和支持
子龙山人(屈光辉)作为本书的第二作者,参与撰写了书中部分重要章节,特别是与物理引擎、CocosBuilder以及跨平台开发相关的内容,感谢他对其他章节提出的宝贵修改建议;同时也要感谢周雪彬参与了本书部分内容的撰写和修改工作。
除封面署名外,成都云创新的项目开发和美术团队中的成员也提供了很多的支持和建议,他们是刘德文、茹振中、陈洪波、汪汶奇。
由于作者水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。读者在学习的过程中如果遇到任何问题或困难,可以访问我的个人博客http://blog.sina.com.cn/eseedo,或通过新浪微博http://weibo.com/eseedo联系我。也可以访问子龙山人的个人网站http://www.zilongshanren.com/,或通过新浪微博http://weibo.com/zilongshanren联系他。除了Cocos2D的相关开发知识外,我的个人博客中还会分享其他与移动应用和游戏开发相关的内容;而子龙山人的个人网站则将分享更多Cocos2D-x及跨平台游戏开发的相关内容。此外,由于Cocos2D的版本更新频率较高,我会及时更新相关的功能,并在源代码中体现出来。如果你有更多的宝贵意见,也欢迎发送邮件到邮箱[email protected]。
致谢
首先要感谢乔布斯,我一生的精神教父、这个时代伟大的创新家之一。
感谢Cocos2D、Cocos2D-x官方社区和论坛中每一位素昧平生但提供热情帮助的朋友。
感谢Ray Wenderlich和他的无私分享,是他让我认识到分享比获得更有乐趣。
感谢GitHub、StackOverflow、iPhoneDevSDK、CocoaChina、泰然论坛、CSDN、51CTO和其他iPhone游戏开发相关论坛中的朋友,很多时候,我们从众人身上学到的东西远胜于自学所得。
感谢机械工业出版社华章公司的编辑杨福川和白宇,在这一年的时间中始终支持着我的写作,是你们的鼓励和帮助引导我顺利完成全部书稿。
感谢成都云创新科技(MEET
Studio)的创业合作伙伴和团队中的每一个成员,没有你们在工作上的无条件支持和大力帮助,这本书就无法顺利完成。
后感谢我的父母和家人,感谢你们无论何时都在身后坚定地支持我、帮助我,伴我渡过人生的一道道难关。
谨以此书献给我的偶像乔布斯,由于时间仓促和学识有限,这本书从一款产品的角度来看还远远谈不上完美,但我希望通过分享这方面的知识,让更多的开发者不再观望,而是实际参与到这个伟大的时代浪潮中!
王寒(eseedo)
于成都
评论
还没有评论。