欢迎光临
Html5圈

《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》

《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》免费送书活动时间:4月20日16:00—4月27日16:00  
点击参加活动
点击购买

腾讯高级工程师亲身开发经验、Cocos2d-x联合创始人力荐。


郑高强 著   
ISBN 978-7-121-25608-0
2015年3月出版
定价:79.00元 
396页
16开

编辑推荐

       随着微信平台的火爆,基于HTML5的游戏迎来了爆发式的增长,如何快速掌握游戏设计、开发的技巧,是很多游戏开发人员迫切的需求。而Cocos2d-JS作为优秀的游戏开发引擎,简单、易用的API,强大的社区力量,让开发更加高效,实现一次编码跨全平台部署在网页和原生应用平台上,是开发者首选的开发工具。

       本书不拘泥于基础理论的讲解,也不作为官方API的搬运工,而是真正和开发者一起体验游戏的开发过程,在深入浅出的讲解中让开发者以最快的速度掌握Cocos2d-JS的入门技巧。

       有位读者说的好:入门后,真正的提高,都是自己在不断的犯错、寻求答案、解决问题中进行的。

《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》

内容提要

       《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》从简单到复杂逐渐深入介绍Cocos2d-JS,包括HTML5和手机原生游戏两个方面的内容。这些内容融汇了作者多年的工作经验和Cocos2d-JS 的亲身使用教训,有助于读者快速掌握游戏开发的方法和避开不必要的麻烦。

       《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》以两个游戏为线索,每一章的学习都为最终实现游戏而准备。除了基础的Cocos2d-JS使用方法,本书还会探讨如何调试发布原生手机游戏和另外一些高级话题。

       《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》适合所有对2D 游戏开发感兴趣的人群,尤其是计算机专业学生、Flash/JS 开发者,因为Cocos2d-JS简单易懂,读者会发现自己已有的基础能快速应用或转移到Cocos2d-JS 游戏的开发中。

       《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》配套资源的下载地址可通过扫描封面后勒口处的二维码获取,也可以登录“博文视点”网站(www.broadview.com.cn)下载相关资源。

目录

第一部分 准 备 篇
第1 章 Cocos2d-JS 介绍 / 2
1.1 原生手机游戏和HTML5 游戏 / 2
1.2 Cocos2d-JS 的前世今生 / 4
1.3 一次开发,同时完成HTML5 和原生游戏 / 5
1.4 Cocos2d-JS 相比Cocos2d-x 的优势和劣势 / 6
1.5 我们要准备些什么基础知识 / 6
1.6 本书适合人群 / 7
1.7 我们能学到什么 / 8
1.8 推荐的学习资源 / 8
第2 章 跑起我们的HelloWorld / 10
2.1 环境搭建 / 10
2.1.1 乞丐版装备——官方SDK 和记事本足矣 / 10
2.1.2 土豪版装备——JS编程三剑客(WebStorm+Chrome+Fiddler)/ 14
2.1.3 旗舰版装备——再来个Visual Studio 或Xcode / 18
2.2 轻松搞定第一个Cocos2d-JS 程序 / 19
2.2.1 建立第一个程序——HelloWorld / 19
2.2.2 打开HelloWorld 工程 / 20
2.2.3 运行HelloWorld / 20
2.3 HelloWorld 简约而不简单 / 22
2.3.1 程序的目录结构 / 22
2.3.2 它是怎么跑起来的 / 24
2.4 出发前再带上个武器——trace / 26
第一部分总结 / 27
第二部分 做一个简单的小游戏
第3 章 Cocos2d-JS 的平面世界 / 30
3.1 Cocos2d世界的经纬度——坐标系 / 30
3.2 场景(Scene)组成了Cocos2d 世界 / 31
3.3 Cocos2d世界物体的祖宗——节点(Node)/ 33
3.4 让2D世界层次化——层(Layer)/ 34
3.4.1 按层管理所有物体 / 34
3.4.2 把层扩展成各种功能的面板 / 35
3.5 二维世界的人物——精灵(Sprite)/ 36
3.6 天外有天——当层和精灵嵌套时怎么设置坐标 / 39
3.7 导演(Director)指挥一切 / 41
3.7.1 场景的切换 / 41
3.7.2 导演可以提供的信息 / 44
3.8 额外说说Cocos2d-JS 的语法 / 44
3.8.1 JS 面向对象和继承 / 44
3.8.2 有点麻烦的this / 46
第4 章 让世界来点动静 / 51
4.1 帧的概念 / 51
4.2 模仿胶卷电影——逐帧变化 / 52
4.3 现成的既定动作 / 54
4.3.1 基本动作 / 54
4.3.2 放一个连招——组合动作 / 59
4.3.3 让运动轨迹来多点花样 / 64
4.4 控制动作 / 66
4.4.1 停止动作 / 66
4.4.2 暂停/恢复动作 / 67
4.4.3 监听动作的开始与结束 / 68
4.5 播放声音 / 70
4.5.1 背景音乐 / 70
4.5.2 音效 / 70
4.5.3 音量 / 70
第5 章 让玩家操纵这个世界 / 72
5.1 鼠标事件 / 72
5.2 触摸事件 / 75
5.2.1 单点触摸 / 75
5.2.2 多点触摸 / 77
5.3 键盘事件 / 79
5.4 重力感应器事件 / 81
5.5 游戏进入后台/恢复显示事件 / 83
第6 章 控制小怪按时出现——定时器 / 84
6.1 每帧做点什么——scheduleUpdate / 84
6.2 scheduleOnce 取代熟悉的setTimeout / 85
6.3 schedule 取代setInterval / 86
6.4 取消定时器 / 86
6.5 暂停/恢复定时器 / 88
6.6 越来越慢的定时器 / 90
6.7 动手制作不变慢的定时器 / 92
第7 章 游戏界面 / 96
7.1 纯手工打造 / 96
7.1.1 按钮(MenuItem)/ 96
7.1.2 开关按钮(MenuItemToggle)/ 102
7.1.3 菜单(Menu)/ 103
7.1.4 文本(LabelTTF)/ 107
7.1.5 输入框 / 108
7.2 可视化编辑 / 109
7.2.1 CocosStudio UI 编辑器介绍 / 109
7.2.2 新建工程 / 111
7.2.3 UI 元素的属性 / 112
7.2.4 UI 元素的树形从属关系 / 113
7.2.5 导入图片 / 113
7.2.6 导出成果 / 114
7.2.7 回归手工——代码中加载UI文件 / 115
7.2.8 监听UI 元素 / 117
第8 章 不能光说不练——小小碰碰糖 / 122
8.1 功能说明 / 122
8.2 新建项目 / 123
8.3 制作糖果 / 124
8.4 游戏界面 / 125
8.5 一个新知识——遮罩(ClippingNode)/ 129
8.6 点击消除 / 134
8.7 补充糖果 / 137
8.8 关卡设计 / 139
8.9 保存进度——如何读/写数据 / 141
第9 章 把成果分享到网上 / 143
9.1 一句命令打包整个程序 / 143
9.2 文件太大,精简一下 / 146
9.3 世界上有免费的服务器吗 / 149
9.3.1 又当爹又当娘——Github 介绍 / 149
9.3.2 开通免费的个人主页 / 150
9.3.3 方便的Windows客户端 / 151
9.4 发布碰碰糖游戏,PC 手机都能玩 / 153
9.5 自定义类库让更新更方便 / 155
第二部分总结 / 5074
第三部分 再做一个高大上游戏
第10 章 走向高大上的必经之路——简单的性能优化 / 160
10.1 化零为整——SpriteSheet / 160
10.1.1 零碎小图的问题 / 160
10.1.2 使用TexturePacker / 161
10.1.3 另一种Sprite 初始化方式——SpriteFrame / 163
10.2 分批处理——SpriteBatchNode / 164
10.3 不要乱丢垃圾——缓存池(pool)/ 167
10.4 拍一张定妆照——位图缓存(BakeLayer)/ 171
第11 章 让主角不再死板 / 173
11.1 帧动画(Frame Animation)/ 173
11.2 骨骼动画 / 176
11.2.1 什么是骨骼动画 / 176
11.2.2 CocosStudio 动画编辑器(Animation Editor)/ 177
11.2.3 导出骨骼动画 / 180
11.2.4 在代码中加载骨骼动画 / 180
11.2.5 更好用的工具——DragonBones / 183
第12 章 动态的背景 / 188
12.1 视差滚动背景(ParallaxNode)/ 188
12.2 实现一个无穷的视差滚动背景 / 190
12.3 瓦片地图(TiledMap)/ 193
12.3.1 瓦片地图介绍 / 193
12.3.2 使用工具:Tiled Map Editor / 194
12.3.3 在代码中加载瓦片地图 / 198
12.4 自行实现无限行走的瓦片地图 / 200
第13 章 界面的文字有点丑 / 204
13.1 高级货位图字体(BMFont)/ 204
13.2 制作位图字体 / 205
13.2.1 BMFont / 205
13.2.2 更特别的字体 / 207
13.3 使用位图字体 / 209
第14 章 超炫的效果——粒子系统 / 211
14.1 粒子系统介绍 / 211
14.2 Cocos2d-JS的粒子系统 / 211
14.3 Cocos2d-JS提供的几种现成效果 / 215
14.4 参数太多手写太累——各种可视化编辑器 / 222
14.5 在代码中加载可视化编辑的粒子系统 / 223
14.6 让粒子系统自生自灭 / 224
第15 章 尝试做一个更大的游戏——Hungry Hero(上篇)/ 226
15.1 游戏简介 / 226
15.2 将会用到什么技术 / 227
15.3 场景列表 / 228
15.4 超人的设计 / 230
15.5 食物的设计 / 232
15.6 障碍物的设计 / 232
15.7 咖啡和蘑菇的设计 / 233
15.8 背景的设计 / 233
15.9 音乐和音效 / 234
第16 章 尝试做一个更大的游戏——Hungry Hero(下篇)/ 235
16.1 准备工作 / 235
16.1.1 代码架构 / 235
16.1.2 打包SpriteSheet / 236
16.2 菜单界面的实现 / 237
16.2.1 添加界面元素 / 237
16.2.2 菜单 / 238
16.2.3 声音按钮 / 239
16.2.4 给画面添加动感 / 240
16.3 声音播放的统一管理 / 241
16.4 关于界面的实现 / 243
16.5 游戏数据的记录 / 245
16.6 游戏过程界面的实现 / 245
16.6.1 游戏UI / 246
16.6.2 加入背景 / 248
16.6.3 结束画面 / 250
16.7 超人登场 / 252
16.7.1 超人的帧动画 / 252
16.7.2 游戏过程场景的框架 / 254
16.7.3 超人的几种状态 / 256
16.7.4 超人起飞 / 256
16.7.5 操控超人 / 258
16.7.6 超人的飞行过程 / 261
16.8 食物 / 263
16.8.1 使用缓存池 / 263
16.8.2 分离食物的逻辑 / 264
16.8.3 食物的移动 / 266
16.8.4 食物的四种排列 / 267
16.8.5 咖啡和蘑菇 / 271
16.8.6 超人和食物的碰撞检测 / 272
16.8.7 接入游戏过程场景 / 274
16.9 障碍物 / 274
16.9.1 封装四种障碍物 / 274
16.9.2 分离障碍物的逻辑 / 278
16.9.3 创建障碍物 / 279
16.9.4 障碍物的移动 / 280
16.9.5 碰到障碍物 / 281
16.9.6 接入游戏过程场景 / 282
16.10 游戏结束 / 283
16.11 加入特效,大功告成 / 285
16.11.1 碰撞障碍物的画面抖动 / 285
16.11.2 吃食物的效果 / 286
16.11.3 蘑菇和咖啡效果 / 287
16.11.4 极速状态下的风痕 / 289
第三部分总结 / 291
第四部分 把两个游戏做成原生手机游戏
第17 章 咱们也来做APP / 294
17.1 一次开发到处运行 / 294
17.2 Android 调试和发布 / 295
17.2.1 命令行运行 / 295
17.2.2 命令行发布 / 297
17.2.3 可视化调试和发布——Cocos Code IDE / 299
17.3 在iOS 侧运行和发布 / 302
17.4 Cocos2d-JS App的启动过程 / 303
第18 章 真是这么美好吗?更多问题来了 / 304
18.1 内存管理 / 304
18.1.1 内存管理机制 / 304
18.1.2 如何使用retain 和release / 309
18.2 HTML5 和JSB 接口差异 / 310
18.3 如何解决兼容问题 / 311
18.4 把碰碰糖和Hungry Hero 部署到手机 / 313
18.4.1 碰碰糖的改造 / 313
18.4.2 Hungry Hero 的改造 / 314
第四部分总结 / 320
第五部分 高 级 篇
第19 章 订阅者模式——事件机制 / 322
19.1 谁更早知道这个事——事件优先级 / 322
19.2 不让别人知道——停止事件传递 / 324
19.3 自定义事件——eventManager / 326
19.4 自己动手做更**的消息中心 / 328
第20 章 屏幕尺寸适配哪家强 / 331
20.1 各种终端的屏幕尺寸 / 332
20.2 Cocos2d-JS屏幕适配大法 / 332
20.2.1 设计尺寸(WinSize)、可视尺寸(VisibleSize)和屏幕尺寸(FrameSize)/ 333
20.2.2 方案1——自适应拉伸 / 333
20.2.3 方案2——全显示 / 335
20.2.4 方案3——无黑边 / 335
20.2.5 方案4——固定高度 / 337
20.2.6 方案5——固定宽度 / 339
第21 章 让死去的主角灰掉——渲染控制 / 342
21.1 让人羡慕的Flash 效果 / 342
21.2 Cocos2d 能模仿Flash 吗 / 344
21.3 要从GPU说起 / 345
21.4 想怎么画就怎么画——自定义着色器(shader)/ 346
21.4.1 Cocos2d 和OpenGL ES / 346
21.4.2 画一个蓝色三角形 / 347
21.4.3 让原来彩色的精灵变黑白 / 351
21.4.4 着色器可以做更多 / 355
21.4.5 HTML5 和JSB 在着色器中的兼容问题 / 356
21.5 更简单的方式——混合模式(blendFunc)/ 357
21.5.1 混合模式介绍 / 357
21.5.2 利用混合模式 / 358
第22 章 动态热更新 / 363
22.1 热更新的原理 / 363
22.2 Cocos2d-JS热更新的关键点 / 364
22.3 利用AssetsManager 实现热更新 / 364
22.4 部署服务器测试热更新 / 371
第23 章 想说的还有很多 / 374
23.1 怎么从单机走向网络 / 374
23.2 发布游戏需要知道的 / 375
23.3 接下来可以做什么 / 375
23.4 欢迎反馈问题给笔者Kenko / 375
第五部分总结 / 376

作者简介

郑高强 腾讯高级工程师,有多年的游戏开发经验,精通Cocos2d-JS和HTML5,曾发表HTML5相关的国家专利,是为数不多的腾讯开源项目作者之一。

媒体评论

       本书文笔欢快,深入浅出地介绍了Cocos2d-JS游戏开发的基础概念和工作原理,涵盖最新版本Cocos2d-JS v3.x的核心类、瓦片地图、BakeLayer、脚本资源热更新模块、编辑器的入门使用,以及如何跨网页和原生平台进行游戏发布等多个方面。整本书的内容循序渐进,结构完整,配有多个精彩的游戏实例详解和引擎进阶使用,介绍如何一步步做出高大上的游戏,适合入门学习和进阶提升,值得一读,在这里推荐给大家。
非常感谢郑高强老师带来的这本《Cocos2d-JS开发之旅》,祝愿大家能在HTML5游戏开发和原生游戏开发之旅实现自己的梦想!

林顺 
Cocos2d-x联合创始人

前言

本书特点

       本书特点是每一部分都有很强的目的性——为了实现真实的游戏。某些技术书的内容编排就好像API 说明一样,只是简单地把所有技术模块介绍一遍,这样的书跟官方文档没什么差别,读者在阅读这样的书时往往不知所措,不知道学习某一章有什么实际意义,这并不是我喜欢的风格。相对比,在本书里大家学习每一章的时候都会清楚地知道为什么要学习这一章的内容,这样才能更好地理解和掌握知识。

       另外,很多技术图书只会点到即止,不会涉及难点。相反,本书在介绍了基本的Cocos2d-JS 开发知识后,还要和大家一起来探讨几个Cocos2d-JS 的高级话题。

本书主要内容

本书的内容分为五个部分:

       • 第一部分是准备篇。这部分有两章的内容,第1 章介绍Cocos2d-JS 的发展过程和现在的市场情况,第2章搭建Cocos2d-JS的开发环境并运行第一个程序——HelloWorld。

       • 第二部分的目标是做一个简单的小游戏,包括了7 章的内容,每一章内容都为小游戏而准备。第3 章是关于Cocos2d-JS 的平面世界和显示列表,也就是最基础的部分;第4 章讲述Cocos2d-JS 的动作,如何让一个物体按设定轨迹运动;第5 章介绍如何处理玩家的操作,例如鼠标、触摸、键盘和重力感应器;第6章和第7章分别讲解定时器和游戏UI 的使用方法。在第8 章和第9 章中,我们将进行实践,先制作一个碰碰糖游戏,再尝试打包为HTML5 游戏发布到互联网上。

       • 第三部分是迈向高大上的一部分,我们在这一部分将学习更多有趣的功能,让游戏变得更绚丽更吸引人,包括第11 章的动画、第12 章的动态背景、第13 章的位图字体和第14 章的粒子系统。另外,为了支持高大上游戏的效率要求,我们还需要学习一些简单的性能优化方法,也就是第10章的内容。最后在第15 章和第16章,本书以两章的篇幅同大家一起实现一款较大的游戏——Hungry Hero。

       • 第四部分是关于原生手机游戏开发的内容,将讲述如何使用Cocos2d-JS 制作原生版本的游戏。在发布原生版本游戏的过程中,大家会遇到各种各样的坑,第18 章介绍其中的原理和避免踩坑的技巧。

       • 第五部分是高级篇,我们探讨一些高级话题,包括事件机制、屏幕适配、渲染控制和动态热更新,这些内容都是实际开发中的难点或挑战点。

版本说明

       在本书编写过程中,Cocos2d-JS的版本不断更新,从最初的v3.0 beta到v3.0,再到v3.4,也许现在已经有更新的版本了。不过,写书的速度还是没跟上Cocos 团队,所以只能折中选择了较稳定的v3.1 了,这个版本已经比v3.0 稳定很多,各种接口在HTML5 和JSB 方面几乎做到了完美兼容。本书所有内容都以v3.1 为准,而大家买此书的时候可能已经有v3.2或v3.4 了,也许极少部分接口会出现变化或者有一些本书没有提及的新功能。如果遇到这种情况,请大家不要过于怪责我,就随便“吐槽”一两句好了,另外有时间的话可以发邮件提醒一下我。

学习建议

       虽然本书提供了全部代码的下载,但是学习一种编程技术最好的方式就是让自己的手指多锻炼。我建议大家在学习每一章内容的时候,都跟着书本的指引,自己尝试建立工程并手工输入相应代码,在一些代码片段之间还可以尝试自己把一些被省略的部分补充完整。

       只有在运行出错或者效果跟书本描述不一致时,大家才查看本书提供的源代码,这样才是最好的学习方式。

吐槽和致谢

       若干年以前,我还是研究生的时候曾写过一些国内外的论文,当时觉得写论文真是一个头痛的工作,你得咬文嚼字再咬文嚼字才最后憋出几页纸的文章。过了若干年,在互联网行业写了无数行代码后,我又一次捡起文笔,尝试写一本技术分享的书,才发现原来写书跟写论文是一样的头痛!虽然写书可能没有论文那么字字斟酌,但是在这个过程中,我时时刻刻心理想着一句话:“我可不能误导别人啊。”因此,本书中每一句话,每一段代码,每一个结论,我都得亲自验证确保无误才放到正文中。在这里,不得不“吐槽”一句,写书真累人啊!

       不过,话说回来,我还是挺享受这种传授知识的过程的。在写这本书之前,几年内我在博客洋洋洒洒写了接近200 篇文章。回想起来,本书的编写还得感谢我以前的一些经历,这包括大学时代的家教工作和研究生时的助教工作。这两个经历让我尝试了当老师的感觉,深刻理解到学生的思维和理解难处,所以在本书的编写过程中特别注意了讲解的合理性,争取让每个知识点都能零基础的读者理解和接受。

       最后,感谢家人和朋友给我的理解和支持。谨以此书献给我亲爱的家人和铁杆的朋友们!

       由于水平有限,难免在书本内容中出现谬误,请大家不吝赐教,欢迎发邮件给我(kenkofox@qq.com),或者到我的博客留言(http://www.cnblogs.com/kenkofox)。

郑高强
2015 年1月4日

《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》免费送书活动时间:4月20日16:00—4月27日16:00  

未经允许不得转载:Html5圈 » 《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

HTML5网站定制 更优秀 更专业

联系我们全国服务热线