实战系列:Cocos2D权威指南.pdf

实战系列:Cocos2D权威指南.pdf
 

书籍描述

编辑推荐
《实战系列:Cocos2D权威指南》编辑推荐:资深专家根据Cocos2D最新版本撰写,内容全面,系统讲解了Cocos2D的使用方法、技术要点、工作原理、开发技巧、最佳实践以及性能优化;实战性强,通过精心设计的典型案例完美呈现了Cocos2D游戏设计与开发的完整过程,极富启发性。

媒体推荐
    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是当前在移动平台上开发互动娱乐应用的首选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 

作者简介
王寒,苹果的铁杆粉丝,国内iOS应用开发领域的先驱,2009年开始从事iOS应用开发。精通Objective-C语言、iOS平台上的应用和互动娱乐类产品的设计和开发,经验非常丰富。其带领团队开发了超过100款基于iOS平台的产品,其中“古筝”这一款产品获评2011年度苹果App Store中国区最佳音乐类应用,“魔幻古筝”、“酷木吉他”、“二胡”、“酷系列”等产品长期在App Store音乐类付费榜单中占据前列。对Cocos2D技术有非常深入的研究,熟悉各种延伸版本和相关技术,积累了丰富的实战经验。活跃于国内最大的iOS开发者社区CocoaChina和iOS教程社区泰然论坛,有较高的知名度和影响力。最近关注Cocos2D-x、Unity3D、HTML 5、社交游戏开发等新技术。
屈光辉,网名“子龙山人”,资深iOS开发工程师、游戏开发工程师和布道师。国内Cocos2D领域的顶级专家之一,有丰富的项目经验。活跃于Cocos2D-x、Cocos2D-iPhone、CocoaChina、泰然论坛、博客园等技术社区,在社区里发表了大量相关的技术文章,深受广大读者欢迎,帮助大批想成为iOS开发者的人实现了自己的理想,颇具影响力和知名度。精通C、C++、Java等相关技术,对JavaScript、Lua、.NET等技术也有一定的了解。Vim狂热分子,近期关注HTML 5、OpenCV和社交游戏的开发。
周雪彬,资深移动应用开发工程师和互联网服务咨询师,现就职于华为,精通iOS和Android平台的应用开发,以及移动应用的产品需求分析与产品设计,有丰富的实战经验。

目录
前言
第一部分 基础篇
第1章 开始前的准备工作 2
1.1 什么是Cocos2D 2
1.1.1 Cocos2D的特点 2
1.1.2 Cocos2D的主要功能 2
1.1.3 Cocos2D应用 3
1.2 下载与安装 4
1.2.1 下载Cocos2D 4
1.2.2 安装Cocos2D模板 6
1.2.3 创建Cocos2D-iPhone的帮助文档 9
1.2.4 使用Cocos2D中内置的项目 10
1.3 HelloCocos2D实例 10
1.3.1 创建HelloCocos2D项目 10
1.3.2 添加小飞机 11
1.3.3 让飞机飞行 13
1.4 深入学习HelloCocos2D项目 13
1.4.1 初识场景和节点 13
1.4.2 实现代码分析 14
1.5 在设备上运行HelloCocos2D项目 23
1.5.1 使用Xcode的自动设置 23
1.5.2 在设备上编译运行项目 24
1.6 本章小结 24
第2章 你的第一款iPhone游戏—垂直射击游戏 25
2.1 准备工作 25
2.2 构建游戏场景 28
2.2.1 添加资源目录 28
2.2.2 添加游戏背景 28
2.2.3 添加玩家飞机 29
2.2.4 添加敌机 30
2.3 玩家交互 33
2.3.1 添加加速计移动 33
2.3.2 添加子弹并射击 35
2.4 碰撞检测 37
2.5 游戏音效 38
2.6 最后的点缀 39
2.6.1 添加计分和玩家生命值 39
2.6.2 添加游戏胜利和结束画面 42
2.7 本章小结 44
第3章 Cocos2D核心类 45
3.1 Cocos2D节点基础知识 45
3.1.1 节点层级图 45
3.1.2 什么是锚点 46
3.2 CCNode节点类 47
3.2.1 CCNode类的属性 47
3.2.2 CCNode类的方法 50
3.3 CCScene场景类 57
3.3.1 CCTransitionScene场景切换 58
3.3.2 Cocos2D支持的场景过渡效果 59
3.4 CCLayer层类 60
3.4.1 CCLayer类的作用 61
3.4.2 CCLayerColor色彩层 62
3.4.3 CCLayerGradient渐变色层 63
3.4.4 CCMenu菜单类 63
3.5 CCTexture纹理类 65
3.5.1 纹理和纹理图集 65
3.5.2 CCTexture2D、CCTextureCache和CCTextureAtlas 66
3.6 CCSprite精灵类 67
3.6.1 CCSprite类的属性及方法 67
3.6.2 CCSpriteBatchNode精灵表单 71
3.6.3 CCSpriteFrame精灵帧 73
3.6.4 CCSpriteFrameCache精灵帧缓存 74
3.7 Cocos2D中的单例 76
3.7.1 Cocos2D中的常用单例 77
3.7.2 CCDirector导演类 77
3.8 垂直射击游戏—加载游戏数据 81
3.8.1 注释draw方法和背景 81
3.8.2 加载游戏资源 82
3.8.3 修改AppDelegate.m文件 88
3.8.4 修改HelloWorldLayer 89
3.8.5 代码重构 90
3.9 本章小结 93
第4章 Cocos2D中的动作、特效与动画 94
4.1 Cocos2D中的节点动作 94
4.1.1 运行ActionsTest测试 94
4.1.2 Cocos2D中的动作类 96
4.2 动作的分类及使用 98
4.2.1 基本动作 98
4.2.2 组合动作 102
4.2.3 Ease动作 105
4.2.4 延迟动作 107
4.2.5 方法回调动作 107
4.2.6 块语句调用动作 112
4.2.7 反转动作 116
4.2.8 特殊动作 117
4.3 垂直射击游戏:加载进度条与滚动背景 117
4.3.1 使用CCProgressTo和CCProgressFromTo动作添加进度条 117
4.3.2 使用CCFollow和CCParallaxNode动作添加滚动背景 119
4.4 Cocos2D中的特效 122
4.4.1 Cocos2D中的网格 122
4.4.2 特效的种类及使用 123
4.4.3 让节点对象返回最初状态 127
4.5 Cocos2D中的动画 127
4.5.1 Cocos2D中与动画相关的类 127
4.5.2 在Cocos2D中实现动画效果 128
4.6 使用Zwoptex工具实现动画效果 129
4.6.1 安装Zwoptex工具 129
4.6.2 制作精灵表单 130
4.6.3 制作精灵动画 132
4.7 垂直射击游戏—添加飞行和爆炸动画 134
4.7.1 添加玩家飞机飞行动画 134
4.7.2 添加飞机爆炸效果 136
4.8 本章小结 138
第5章 Cocos2D中的文本渲染系统 139
5.1 文本渲染系统的组成 139
5.1.1 CCLabelTTF类 139
5.1.2 CCLabelAtlas类 145
5.1.3 CCLabelBMFont类 147
5.2 标签的对齐方式 151
5.3 使用第三方工具创建字体纹理图集 152
5.3.1 Hiero工具的使用方法 153
5.3.2 创建字体图集步骤 153
5.4 垂直射击游戏—美化游戏界面 155
5.4.1 渲染文本 155
5.4.2 实现倒计时功能 156
5.5 本章小结 158
第6章 Cocos2D中的事件处理机制 159
6.1 iOS中的交互事件处理 159
6.1.1 什么是用户输入事件 159
6.1.2 多点触摸事件处理机制 160
6.1.3 重力感应事件处理机制 162
6.2 Cocos2D中的触摸事件处理 164
6.2.1 如何处理触摸事件 165
6.2.2 模板中自带的TouchesTest项目 168
6.2.3 实战—随手指移动的小球 169
6.3 Cocos2D中的重力感应事件 172
6.3.1 如何处理重力感应事件 172
6.3.2 实战—受加速计控制的小球 172
6.4 垂直射击游戏—暂停游戏 177
6.4.1 PauseLayer类的实现 177
6.4.2 CustomMenu类的实现 180
6.4.3 游戏主场景添加暂停层 180
6.4.4 PauseLayerProtocol代理 181
6.5 本章小结 182
第7章 Cocos2D世界的声音 183
7.1 认识CocosDenshion音效引擎 183
7.1.1 CocosDenshion重要API 183
7.1.2 CocosDenshion相关类 184
7.1.3 Cocos2D支持的CocosDenshion 185
7.2 SimpleAudioEngine使用方法 186
7.2.1 添加背景音乐 187
7.2.2 控制音乐的播放和停止 188
7.2.3 判断当前是否播放背景音乐 192
7.2.4 添加音效 194
7.3 CDSoundEngine使用方法 195
7.3.1 设置CDSoundEngine 195
7.3.2 播放背景音乐和音效 199
7.4 游戏菜单中的声音设置选项 202
7.5 垂直射击游戏—GameOver 208
7.5.1 实现背景音乐暂停功能 208
7.5.2 实现菜单场景 208
7.5.3 实现高分榜场景 215
7.5.4 实现GameOver场景 221
7.6 本章小结 223
第8章 在Cocos2D中使用瓷砖地图 224
8.1 认识瓷砖地图 224
8.2 Tiled地图编辑器 225
8.2.1 安装Tiled 225
8.2.2 用Tiled绘制地图 226
8.2.3 在地图中添加对象 230
8.3 在项目中使用瓷砖地图 232
8.3.1 TMX文件解析 232
8.3.2 Cocos2D中的瓷砖地图类 233
8.3.3 在项目中载入TMX地图 238
8.3.4 使用TMX地图中的对象 239
8.4 超级玛丽—实现简单的原型 242
8.4.1 准备工作 243
8.4.2 创建高清版本Tiled地图 244
8.4.3 在代码里加载Tiled地图 248
8.4.4 利用WBTMXTool工具制作普清版本Tiled地图 250
8.4.5 添加遥感控制器 252
8.5 本章小结 254
第9章 物理引擎—更真实的Cocos2D世界 255
9.1 游戏物理引擎概况 255
9.1.1 物理引擎的应用 255
9.1.2 常见的游戏物理引擎 257
9.2 认识Box2D 257
9.2.1 Box2D碰撞检测和处理系统 258
9.2.2 Box2D中的核心概念 259
9.3 示例项目HelloBox2D详解 265
9.3.1 使用模板创建HelloBox2D项目 265
9.3.2 解读HelloBox2D默认项目代码 267
9.3.3 完善HelloBox2D项目 280
9.4 Box2D实战—物理射击游戏 291
9.4.1 准备工作 292
9.4.2 创建会转动手臂的小人 294
9.4.3 发射子弹 300
9.4.4 使用PhysicEditor工具制作凹槽 303
9.4.5 凹槽实现升降机效果 306
9.4.6 处理碰撞传感器 307
9.4.7 加入更多障碍 309
9.5 超级玛丽—Box2D与Tiled结合 310
9.5.1 添加玛丽和物体的物理属性 310
9.5.2 使玛丽行走和跳跃 319
9.5.3 为游戏中的金币和箱子添加物理属性 325
9.5.4 碰撞检测—吃金币 329
9.5.5 游戏特效—吸金币 332
9.5.6 加入游戏音效 335
9.5.7 设计胜利和失败条件 335
9.6 本章小结 338
第二部分 实战篇
第10章 Angel Panda游戏的设计与实现 340
10.1 iOS游戏完整的制作流程 340
10.2 Angel Panda游戏设计 342
10.2.1 Angel Panda的创意来源 342
10.2.2 Angel Panda的故事背景及游戏规则 342
10.2.3 Angel Panda的游戏体验流程 343
10.3 开发前的准备工作 343
10.3.1 下载并安装合适的开发工具 343
10.3.2 将项目分解成不同的模块 344
10.3.3 准备游戏中所需要的资源 345
10.4 Angel Panda游戏的实现 345
10.4.1 使用Cocos2D模板创建新项目 345
10.4.2 设置游戏主场景 350
10.4.3 添加游戏角色 354
10.4.4 添加用户交互机制 368
10.4.5 添加游戏逻辑 370
10.4.6 添加音效 374
10.5 本章小结 377
第11章 AngryPanda游戏的设计与框架搭建 378
11.1 AngryPanda游戏设计 378
11.1.1 AngryPanda的创意来源 378
11.1.2 AngryPanda的故事背景及游戏规则 378
11.1.3 AngryPanda的游戏体验流程 379
11.2 开发前的准备工作 379
11.2.1 下载并安装合适的开发工具 379
11.2.2 将项目分解成不同的模块 380
11.2.3 准备游戏需要的资源 381
11.2.4 使用Box2D模板创建新项目 382
11.3 数据存储和游戏设置 383
11.3.1 创建和实现GameData类 384
11.3.2 GameData类中的重要方法 386
11.3.3 创建Constants.h头文件 389
11.4 游戏中的音效管理 390
11.4.1 创建GameSounds类 390
11.4.2 GameSounds类中的重要方法 391
11.5 游戏中的辅助界面 391
11.5.1 游戏开始界面 392
11.5.2 游戏介绍界面 400
11.5.3 关卡选择界面 404
11.5.4 关卡结束界面 407
11.6 本章小结 410
第12章 Angry Panda游戏主场景的实现 411
12.1 Box2D世界的物体 411
12.1.1 创建抽象物体类 411
12.1.2 创建熊猫角色 414
12.1.3 创建平台物体 418
12.1.4 创建外星怪物 419
12.1.5 创建遮挡物体 423
12.1.6 创建并放置攻击目标 425
12.2 实现游戏的主场景 427
12.2.1 创建MainScene类 428
12.2.2 场景的视觉呈现 431
12.2.3 如何与用户交互 437
12.2.4 实现游戏的逻辑机制 442
12.3 游戏中的碰撞检测机制 443
12.3.1 创建ContactListener类 444
12.3.2 碰撞检测机制的实现 444
12.4 本章小结 447
第三部分 高级篇
第13章 粒子系统 450
13.1 Cocos2D中的粒子系统 450
13.1.1 粒子系统相关的类 450
13.1.2 Cocos2D内置的粒子系统 452
13.2 手动创建粒子系统示例 453
13.2.1 创建ParticleEffect项目 453
13.2.2 添加Cocos2D内置的粒子系统 454
13.2.3 手动创建粒子系统类 455
13.2.4 设置粒子系统的属性 459
13.3 plist文件 464
13.3.1 particle.plist文件内容 464
13.3.2 使用plist文件创建粒子系统 466
13.4 粒子工具Particle Designer 468
13.4.1 下载安装Particle Designer 468
13.4.2 Particle Designer工具栏 469
13.4.3 如何设置Emitter Config属性 470
13.4.4 如何在项目中使用粒子系统 472
13.5 本章小结 473
第14章 CocosBuilder和Shader 474
14.1 CocosBuilder初体验 474
14.1.1 下载安装CocosBuilder 474
14.1.2 查看Example目录结构 476
14.1.3 如何打开样例文件 477
14.2 第一个CocosBuilder项目 478
14.2.1 创建HelloWorldCocosBuilder场景 478
14.2.2 加载HelloWorldCocosBuilder场景 483
14.2.3 建立文档与代码的连接 484
14.2.4 完善HelloWorldCocosBuilder场景 486
14.3 HelloWorldCocosBuilder项目功能完善 489
14.3.1 制作GameMenu场景 490
14.3.2 制作About场景 493
14.3.3 发布ZIP格式场景资源文件 495
14.3.4 如何支持多个设备分辨率 496
14.4 着色器 496
14.4.1 着色器的种类及工作原理 497
14.4.2 编写自己的Shader程序 500
14.4.3 如何为Sprite定制顶点着色器 503
14.4.4 如何定制片段着色器 507
14.4.5 旋风效果示例 509
14.5 本章小结 512
第15章 在游戏中添加对Game Center的支持 513
15.1 什么是Game Center 513
15.1.1 Game Center的功能 513
15.1.2 Game Center的特点 513
15.2 在项目中添加对Game Center的支持 514
15.2.1 注册iOS开发者账号 514
15.2.2 为应用创建并设置App ID 514
15.2.3 在iTunes Connect中注册应用 517
15.2.4 开启对Game Center的支持 520
15.2.5 在iTunes Connect中添加成就系统 520
15.2.6 在iTunes Connect中设置积分排行榜 523
15.3 示例项目GKTapper详解 524
15.3.1 添加Game Kit框架 525
15.3.2 检查Game Center是否可用 526
15.3.3 验证玩家是否登录Game Center 527
15.3.4 实现成就系统 530
15.3.5 实现积分排行榜 535
15.4 本章小结 539
第16章 在游戏中添加对IAP的支持 540
16.1 什么是IAP 540
16.1.1 IAP的功能 540
16.1.2 IAP中的商品类型 540
16.1.3 IAP实现机制 542
16.2 Store Kit Framework介绍 545
16.2.1 Store Kit Framework中的购买核心类 545
16.2.2 Store Kit Framework中的商品核心类 548
16.2.3 SKDownload类 550
16.2.4 Store Kit Framework中的协议 550
16.3 在iTunes Connect配置IAP 551
16.3.1 在iTunes Connect中添加商品信息 552
16.3.2 在iTunes Connect中添加沙盒测试账号 558
16.4 在项目中添加与IAP相关的代码 560
16.4.1 IAPGame项目简介 560
16.4.2 在项目中添加Store Kit框架 562
16.4.3 添加MyStore类 563
16.5 在设备中测试并提交审核 576
16.6 本章小结 583
第17章 游戏性能分析与优化 584
17.1 如何发现性能瓶颈 584
17.1.1 Instruments基本功能 584
17.1.2 Instruments中内置的分析工具 585
17.1.3 如何使用Time Profiler工具模板 586
17.1.4 如何使用OpenGL ES Driver工具模板 588
17.1.5 使用空白模板创建定制分析工具 590
17.2 Cocos2D内置的性能分析工具 591
17.2.1 CCProfiler和CCProfilingTimer 591
17.2.2 如何使用性能分析工具 593
17.3 优化Cocos2D游戏性能 595
17.3.1 在Cocos2D中开启自动引用计数 595
17.3.2 使用CCSpriteBatchNode 替代CCSprite 597
17.3.3 提升游戏性能的其他技巧 598
17.4 本章小结 600
第18章 产品的测试、发布与推广 601
18.1 用户体验测试 601
18.1.1 测试用户的选择 601
18.1.2 产品测试的步骤 601
18.2 产品的上传与发布 610
18.2.1 加入iOS开发者计划 610
18.2.2 在App Store中发布产品 618
18.3 App产品的宣传与推广 636
18.3.1 产品推广的原因 636
18.3.2 产品推广的方法 636
18.4 本章小结 638
第19章 Cocos2D的延伸 639
19.1 Cocos3D简介 639
19.1.1 Cocos3D的基本特性 639
19.1.2 Cocos3D核心类简介 640
19.1.3 下载并安装Cocos3D 642
19.2 Cocos2D-x 简介 643
19.2.1 创建iOS版的HelloWorld项目 643
19.2.2 创建基于Cocos2D-x的Android项目 648
19.3 Cocos2D-HTML5详解 661
19.3.1 Cocos2D-HTML5简介 661
19.3.2 下载安装Cocos2D-HTML5 662
19.3.3 安装配置WebServer(可选) 664
19.3.4 解析helloHTML5World项目 665
19.4 Cocos2D-Python简介 671
19.5 本章小结 671

序言
前言
为什么要写这本书
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以及跨平台开发相关的内容,感谢他对其他章节提出的宝贵修改建议;同时也要感谢周雪彬参与了本书部分内容的撰写和修改工作。
除封面署名外,成都云创新的项目开发和美术团队中的成员也提供了很多的支持和建议,他们是刘德文、茹振中、陈洪波、汪汶奇。
由于作者水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。
致谢
首先要感谢乔布斯,我一生的精神教父、这个时代最伟大的创新家之一。
感谢Cocos2D、Cocos2D-x官方社区和论坛中每一位素昧平生但提供热情帮助的朋友。
感谢Ray Wenderlich和他的无私分享,是他让我认识到分享比获得更有乐趣。
感谢GitHub、StackOverflow、iPhoneDevSDK、CocoaChina、泰然论坛、CSDN、51CTO和其他iPhone游戏开发相关论坛中的朋友,很多时候,我们从众人身上学到的东西远胜于自学所得。
感谢机械工业出版社华章公司的编辑杨福川和白宇,在这一年的时间中始终支持着我的写作,是你们的鼓励和帮助引导我顺利完成全部书稿。
感谢成都云创新科技(MEET Studio)的创业合作伙伴和团队中的每一个成员,没有你们在工作上的无条件支持和大力帮助,这本书就无法顺利完成。
最后感谢我的父母和家人,感谢你们无论何时都在身后坚定地支持我、帮助我,伴我渡过人生的一道道难关。
谨以此书献给我的偶像乔布斯,由于时间仓促和学识有限,这本书从一款产品的角度来看还远远谈不上完美,但我希望通过分享这方面的知识,让更多的开发者不再观望,而是实际参与到这个伟大的时代浪潮中!
王寒(eseedo)
于成都

文摘
第一部分
基础篇
本部分内容
开始前的准备工作
你的第一款iPhone游戏—垂直射击游戏
Cocos2D核心类
Cocos2D中的动作、特效与动画
Cocos2D中的文本渲染系统
Cocos2D中的事件处理机制
Cocos2D世界的声音
在Cocos2D中使用瓷砖地图
物理引擎—更真实的Cocos2D世界
第1章 开始前的准备工作
本章我们将介绍什么是Cocos2D以及有关Cocos2D的一些重要基础知识,包括如何下载与安装Cocos2D-iPhone的模板、如何安装Cocos2D-iPhone的帮助文档。最后,通过一个有趣的实例介绍如何创建一个最基本的HelloCocos2D项目,并带领读者对这个项目进行深入学习。
1.1 什么是Cocos2D
Cocos2D是一个开源框架,用于构建2D游戏、演示程序和其他图形界面交互应用等。
Cocos2D诞生于一个用于开发2D游戏的Python框架(www.cocos2d.org)。在2008年的冬天,技术爱好者把它引入到iPhone开发中,并使用Objective-C重新编写。由于Cocos2D-iPhone的巨大成功,目前Cocos2D已经衍生出了多个版本,包括Ruby、Java(Android)、C++,甚至Mono(C#/.NET)。
本书介绍的Cocos2D实际上是Cocos2D-iPhone(www.cocos2d-iphone.org),它是目前Cocos2D的最主要分支(后面为了统一,提到的所有Cocos2D均指Cocos2D-iPhone)。
使用Cocos2D可以轻易地开发iPhone、iPod Touch、iPad和Mac上的游戏。可以把Cocos2D作为一个库导入自己的Xcode项目,也可以使用内置的Cocos2D模板来创建一款新游戏。
1.1.1 Cocos2D的特点
易于使用:使用Cocos2D,游戏开发者可以把关注的焦点放在游戏机制的设计本身,而不必耗费大量时间学习晦涩难懂的低级API。此外,Cocos2D中还提供了大量的范例。
高效:Cocos2D使用OpenGL ES进行图像渲染,从而让iOS设备的GPU性能发挥到极致。此外,它还对数据结构进行了优化。
灵活:方便扩展,易于集成第三方类。
免费:作为一个免费的开源引擎,用户可以放心地免费使用,而无须考虑商业授权的问题。
社区支持:关注Cocos2D的人们自发形成了一个异常活跃而友好互助的社区。其中,www.cocos2d-iphone.org/forum论坛非常活跃,里面有很多学习Cocos2D和解决相关难题的资源,从中还可以了解Cocos2D的最新进展。
支持平台:iPhone、iPod Touch、iPad和Mac OS X。
1.1.2 Cocos2D的主要功能
场景管理(Workflow):非常容易管理不同场景(Scene)。
场景切换(Transitions):可以方便地从一个场景切换到另外一个不同风格的场景,并支持各种场景间的切换特效。
精灵(Sprites)和精灵表单(Sprite Sheets):支持快速而方便的精灵以及高效的精灵表单。
特效(Effects):特效包括波浪(Waves)、旋转(Twirl)、透镜(Lens)、涟漪(Ripple)和液体(Liquid)等。
动作(Actions):告诉精灵可以做什么动作。动作分为基本动作、组合动作、缓冲动作和其他动作。基本的动作有移动(Move)、旋转(Rotate)、缩放(Scale)和跳跃(Jump)等;组合动作有顺序动作(Sequence)、并发动作(Spawn)、重复动作(Repeat)、反转动作(Reverse);缓冲动作有Exp、Sin、Cubic等;其他动作有CallFunc、OrbitCamera等。
菜单和菜单按钮(Menus &MenuItems):可以轻松地创建内部菜单和菜单按钮。
物理引擎(Physics Engine):Cocos2D内置支持Box2D和Chipmunk两个物理引擎。
粒子系统(Particle System):Cocos2D中包含一个强大的粒子系统,可以给游戏添加各种很炫的效果,如烟、火、雨、雪等。
文本渲染(Text Rendering):支持可变和固定宽度的字体。在Cocos2D中处理文字非常容易,这一点对于显示游戏中的菜单和得分,以及进行辅助性的游戏测试等都非常有用。Cocos2D中内置了对TrueType字体的支持,同时还支持快速位图字体渲染系统。这样,开发者仅需编写数行代码即可在屏幕上显示文字。
纹理图集(Texture Atlas):支持纹理图集,从而大大节省了应用中的内存占用。
瓷砖地图(Tiled Maps):支持正交地图、斜视角地图和六边形地图。
视差滚动(Parallax Scrolling):支持使用视差滚动来营造立体的背景氛围。
音效:支持背景音乐和游戏中的音效。
Streak Motion:支持Streak Motion(一种类似疾驰的飞机尾部喷出的气体的效果)。
渲染到纹理(Render Texture):支持渲染到纹理。
Point Based API:支持Retina显示,可以使用同样的坐标值来处理普清和高清模式下的游戏元素布局。
输入设备:支持触摸/加速计(iOS),键盘/鼠标(Mac)。
显示模式:支持纵向和横向模式(iOS),自动全屏(Mac)。
暂停/恢复:内置支持游戏的暂停/恢复。
快速纹理:支持8位、16位和32位PVRTC压缩纹理。
编程语言:Cocos2D-iPhone使用Objective-C编写,同时可混合使用C或C++语言。
图形引擎:Cocos2D 1.x版本支持OpenGL ES 1.1(iOS)/OpenGL 1.5(Mac),而最新的Cocos2D v2.0则支持OpenGL ES 2.0。
1.1.3 Cocos2D应用
从Cocos2D官方网站的信息可知,苹果App Store中已经有超过2500款游戏是使用Cocos2D开发的,而且这个数字还在不断地增加。其中,很多游戏进入过TOP100,甚至TOP10。新鲜出炉的2011年度最佳iPhone游戏(iPhone Game of The Year)Tiny Tower就是使用Cocos2D开发出的成功之作,如图1-1所示。
该游戏的开发者是独立游戏工作室NimbleBit的双胞胎兄弟David和Ian Marsh,他们的另一款成功之作Pocket Frogs同样使用Cocos2D开发。
在App Store美国区Top Grossing Apps总榜上,Tap Pet Hotel、Tap Zoo、Zombie Farm等产品都是使用Cocos2D开发的。
此外,在IPO上市的著名社交游戏公司Zynga于2011年6月收购了Cocos2D,开始在自己的多款iOS平台作品中使用该框架,并继续将其向普通开发者开源。
看到这些独立开发者和公司的辉煌战绩,你还在等什么呢?赶紧加入到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的延伸技术。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多