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

  • 购买积分:13 如何计算积分?
  • 作  者:郑高强著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2015
  • ISBN:9787121256080
  • 页数:376 页
图书介绍:本书主要内容分为基础篇、功能篇、进阶篇和实战篇。基础篇主要讲解Cocos2d-JS的基本框架内容。功能篇讲解一些复杂功能的实现,并以一个实际小游戏,让读者体验完整的开发过程和发布到网络的成就感。进阶篇引入JSB的内容,介绍如何把游戏移植发布为手机原生游戏。实战篇介绍性能优化、粒子系统、GPU渲染控制等高级内容,并一个更完整的游戏制作过程来让读者做一个完整的复习和实践。

第一部分 准备篇 2

第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

第二部分 做一个简单的小游戏 30

第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

第二部分总结 158

第三部分 再做一个高大上游戏 160

第10章 走向高大上的必经之路——简单的性能优化 160

10.1 化零为整——SpriteSheet 160

10.1.1 零碎小图的问题 160

10.1.2 使用TexturePaeker 161

10.1.3 另一种Sprite初始化方式——SpriteFrame 163

10.2 分批处理——SpriteBatehNode 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章 尝试做一个更大的游戏——HungryHero(下篇) 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

第四部分 把两个游戏做成原生手机游戏 294

第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 HungryHero的改造 314

第四部分总结 320

第五部分 高级篇 322

第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