《Egret HTML5游戏开发指南》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:张鑫磊等著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121281938
  • 页数:477 页
图书介绍:本书向大家介绍HTML5游戏行业最新动态以及未来发展方向,同时也提及了当前HTML5技术相关市场。全书针对Egret HTML5游戏做了全方位讲解,涉及游戏中的渲染方法、音频与网络的处理。游戏中常用的GUI使用方法,同时还为大家讲解了DraongBones骨骼动画系统、P2物理引擎系统和HTML5游戏中性能和网络的优化技巧。

第1章 欢迎来到HTML5的世界 1

1.1 什么是HTML5 1

1.2 HTML5的前世今生 3

1.3 W3C与WHATWG工作组 4

1.4 令人称赞的Canvas与WebGL 5

1.4.1 Canvas 5

1.4.2 WebGL 5

1.5 何为HTML5游戏 6

1.5.1 从技术角度出发 6

1.5.2 从非技术角度出发 6

1.6 HTML5游戏的特点与痛点 6

1.6.1 特点 7

1.6.2 痛点 8

1.7 HTML5游戏的当下与未来 9

1.7.1 产品研发阶段 9

1.7.2 测试上线运营阶段 12

1.7.3 未来 13

1.8 小结 13

第2章 奇妙的前端之旅 14

2.1 JavaScript的苦与痛 14

2.2 伟大的ECMAScript标准 15

2.2.1 ECMAScript标准是什么 15

2.2.2 历史 15

2.2.3 版本 16

2.3 JavaScript的代替品:Dart、CoffeeScript、TypeScript 16

2.3.1 Dart 16

2.3.2 CoffeeScript 17

2.3.3 TypeScript 17

2.4 初出茅庐的WebAssembly 18

2.4.1 WebAssembly是什么 18

2.4.2 asm.js 18

2.5 HTML5游戏开发利器——游戏引擎 18

2.6 一个神器:Egret Runtime 19

2.6.1 什么是Egret Runtime 19

2.6.2 为什么要用Egret Runtime 19

2.7 小结 21

第3章 Hello Egret 22

3.1 Egret引擎简介 22

3.1.1 Egret引擎的特点 22

3.1.2 Egret引擎的主要功能 23

3.1.3 Egret引擎的应用案例 24

3.2 搭建开发环境 25

3.2.1 Egret引擎版本的选择 25

3.2.2 Egret Wing:强大的IDE工具 31

3.2.3 ResDepot:资源管理工具 33

3.2.4 Texture Merger:资源打包工具 33

3.3 Hello World 34

3.3.1 创建第一个项目 34

3.3.2 运行项目 36

3.3.3 修改一下,成为自己的Hello World 37

3.4 Hello World分析 38

3.4.1 项目源代码目录 38

3.4.2 项目配置文件 38

3.4.3 项目运行库 39

3.4.4 项目编译目录 39

3.4.5 项目资源目录 40

3.4.6 项目发布目录 40

3.5 库与代码风格 41

3.5.1 Egret引擎的代码风格 41

3.5.2 核心库与扩展库的使用方法 42

3.5.3 第三方库的集成方法 42

3.6 命令行模式详解 45

3.6.1 创建项目 45

3.6.2 编译项目 45

3.6.3 运行项目 46

3.6.4 发布项目 47

3.6.5 了解更多 47

3.7 小结 48

第4章 游戏的基础知识 49

4.1 显示对象 49

4.1.1 什么是显示对象 49

4.1.2 坐标系 51

4.1.3 显示对象的种类 57

4.1.4 显示列表 58

4.2 显示对象的架构 58

4.2.1 容器与非容器 58

4.2.2 DisplayObject类与DisplayObjectContainer类 62

4.2.3 Sprite与Shape 62

4.3 Shape矢量图 67

4.3.1 绘制矩形 68

4.3.2 清空绘图 70

4.3.3 绘制圆形 70

4.3.4 绘制直线 72

4.3.5 绘制曲线 74

4.3.6 绘制圆弧 76

4.3.7 多个形状的绘制 77

4.4 显示列表与容器类 79

4.4.1 关于显示容器 79

4.4.2 添加与删除显示对象 81

4.4.3 显示对象操作的注意点 83

4.5 遮罩与碰撞检测 87

4.5.1 遮罩的使用 87

4.5.2 非精确碰撞检测 91

4.5.3 精确碰撞检测 92

4.5.4 包围盒碰撞 94

4.6 混合模式 96

4.6.1 NORMAL模式 96

4.6.2 ADD模式 99

4.6.3 ERASE模式 102

4.7 小结 103

第5章 事件与用户交互 104

5.1 事件消息机制 104

5.1.1 事件处理机制的原理 104

5.1.2 第一个事件处理的例子 105

5.1.3 事件流机制 105

5.2 事件 107

5.2.1 事件类 107

5.2.2 自定义事件 110

5.3 侦听器 110

5.3.1 创建侦听器 110

5.3.2 注册侦听器与移除侦听器 112

5.3.3 侦听器中的this 112

5.4 事件的优先级 113

5.5 自定义事件发送类 114

5.5.1 继承EventDispatcher 114

5.5.2 复合EventDispatcher 114

5.5.3 实现IEventDispatcher接口 115

5.6 触摸事件 117

5.6.1 触摸事件类型 117

5.6.2 开启touchEnable 117

5.7 实践:同色点点看 118

5.8 小结 125

第6章 游戏资源管理 126

6.1 RES资源加载模块 126

6.2 资源配置文件 127

6.3 加载资源配置文件 129

6.3.1 外部文件 129

6.3.2 直接读取 130

6.3.3 对比说明 130

6.4 预加载资源组 131

6.5 动态创建资源组 132

6.6 读取资源文件 133

6.7 资源的缓存机制 135

6.8 释放资源 136

6.9 内置文件类型解析器 136

6.9.1 配置九宫格参数 136

6.9.2 配置声音资源 138

6.9.3 读取解析二进制文件 138

6.10 扩展资源文件类型解析器 139

6.11 小结 139

第7章 位图操作 140

7.1 创建位图 140

7.1.1 认识位图 140

7.1.2 位图格式 140

7.1.3 位图来源 141

7.1.4 位图加载 141

7.1.5 位图显示 141

7.2 操作纹理集 142

7.2.1 从RES中获取纹理 142

7.2.2 SpriteSheet纹理集类 142

7.3 纹理填充方式 145

7.3.1 位图填充拉伸以填充区域 146

7.3.2 重复位图以填充区域 146

7.4 位图的九宫格 147

7.4.1 缘起 147

7.4.2 九宫格原理 148

7.4.3 代码中使用九宫格 148

7.4.4 通过ResDepot设置九宫格 149

7.5 滤镜 151

7.5.1 滤镜可用性及WebGL开关 151

7.5.2 发光滤镜 152

7.5.3 投影滤镜 153

7.5.4 颜色矩阵滤镜 154

7.5.5 模糊滤镜 156

7.5.6 设置滤镜品质 157

7.5.7 滤镜使用优化技巧 157

7.6 实践:《抓间谍》 158

7.6.1 游戏设计稿 158

7.6.2 准备素材 158

7.6.3 编写代码 158

7.7 小结 162

第8章 文本 163

8.1 普通文本 163

8.1.1 创建普通文本 163

8.1.2 设置文本样式 168

8.1.3 字体的设置 170

8.1.4 多样式混合文本 172

8.1.5 设置文本超链接 175

8.2 输入文本 177

8.2.1 创建可输入文本 177

8.2.2 设置输入文本样式 178

8.3 位图文本 179

8.3.1 创建位图文本字体 179

8.3.2 位图文本的使用 181

8.4 实践:游戏登录和活动公告板 183

8.5 小结 192

第9章 动画与粒子特效 193

9.1 逐帧动画 193

9.1.1 逐帧动画简介 193

9.1.2 动画素材制作方法 194

9.1.3 创建一个逐帧动画 198

9.1.4 播放和暂停动画 202

9.1.5 跳转动画 202

9.1.6 动态切换动画数据 202

9.1.7 动画的缓存机制 203

9.1.8 动画数据详解 203

9.2 缓动动画 206

9.2.1 Tween缓动动画 206

9.2.2 缓动的基本用法 207

9.2.3 缓动对象的基本控制参数 208

9.2.4 缓动对象的缓动变化事件 208

9.2.5 缓动过程参数设定 208

9.2.6 缓动对象的其他方法 209

9.3 粒子特效 209

9.3.1 粒子系统简介 209

9.3.2 粒子系统使用 210

9.3.3 自定义粒子特效 212

9.4 小结 212

第10章 音乐与音效 214

10.1 声音类 214

10.1.1 egret.Sound类 214

10.1.2 使用声音类 215

10.2 音频控制类 218

10.2.1 播放 218

10.2.2 音量 218

10.2.3 暂停 218

10.3 声音事件 222

10.4 音乐与音效类型设置 225

10.5 小结 226

第11章 数据操作 227

11.1 JSON数据操作 227

11.1.1 JSON数据格式简介 227

11.1.2 为什么使用JSON数据格式 228

11.1.3 在Egret中加载JSON数据 229

11.1.4 在Egret中操作JSON数据 229

11.2 二进制数据操作 230

11.2.1 读取二进制数据对象 230

11.2.2 写入字节流 230

11.2.3 定位字节流指针 231

11.2.4 读取字节流 231

11.2.5 大端模式与小端模式 232

11.3 实践:仿《找你妹》游戏 233

11.3.1 游戏策划案 233

11.3.2 准备资源 234

11.3.3 编写代码 235

11.4 小结 240

第12章 网络通信 241

12.1 HTTP网络请求 241

12.1.1 构建简单的网络请求 241

12.1.2 POST与GET请求 242

12.1.3 发送带有数据的网络请求 244

12.1.4 检测网络请求状态 247

12.2 WebSocket通信 247

12.2.1 创建WebSocket连接 248

12.2.2 发送数据 249

12.2.3 读取数据 249

12.2.4 WebSocket的网络状态 250

12.2.5 断开与重连服务器 251

12.3 实践:游戏中的聊天室 251

12.4 小结 259

第13章 计时器与心跳控制器 260

13.1 Timer 260

13.1.1 创建计时器 260

13.1.2 加入计时器事件侦听 260

13.1.3 启动计时器 261

13.1.4 修改计时器时间间隔 261

13.1.5 修改计时器 261

13.2 Ticker 262

13.2.1 Ticker 与 Timer的不同 262

13.2.2 开启心跳侦听 262

13.2.3 移除心跳侦听 263

13.2.4 Ticker的最新用法 263

13.3 setTimeout与clearTimeout 264

13.4 getTimer 265

13.5 《抓间谍》和《找你妹》 265

13.5.1 《抓间谍》 265

13.5.2 《找你妹》 267

13.6 小结 268

第14章 反射机制与依赖注入 270

14.1 反射机制 270

14.1.1 什么是反射机制 270

14.1.2 getDefinitionByName方法 274

14.1.3 获取运行时对象类型 275

14.1.4 检查域内定义 276

14.2 依赖注入 277

14.2.1 什么是依赖注入 277

14.2.2 Injector注入器 278

14.2.3 注入器的应用场景 281

14.3 小结 281

第15章 屏幕适配与环境交互 282

15.14 种屏幕适配策略 282

15.1.1 设置屏幕适配策略 282

15.1.2 exactFit模式 283

15.1.3 noScale模式 283

15.1.4 showAll模式 284

15.1.5 fixedWidth模式和fixedHeight模式 285

15.1.6 noBorder模式 286

15.1.7 在程序内设置缩放模式 286

15.2 屏幕方向设置 286

15.2.1 竖屏模式 287

15.2.2 横屏模式 288

15.2.3 反向横屏模式 288

15.2.4 自动模式 289

15.3 环境交互 289

15.3.1 Egret与网页JavaScript交互 289

15.3.2 读取网页GET参数 290

15.4 小结 290

第16章 调试与性能检测 291

16.1 TypeScript断点调试 291

16.2 日志输出面板 298

16.2.1 打开日志显示开关 299

16.2.2 输出日志 299

16.2.3 显示脏矩形和帧频信息 299

16.3 Egret Inspector浏览器调试工具 300

16.3.1 安装Egret Inspector 301

16.3.2 运行Egret Inspector 302

16.4 小结 302

第17章 打包发布到原生平台 303

17.1 打包原生APP原理 303

17.1.1 编译型语言和解释型语言 303

17.1.2 浏览器内核与JavaScript解释器 303

17.2 打包为iOS原生APP 304

17.2.1 下载Egret iOS Support 305

17.2.2 将HTML5游戏打包为iOS原生APP 305

17.3 打包为Android原生APP 306

17.3.1 下载Egret Android Support 306

17.3.2 将HTML5游戏打包为Android原生APP 306

17.4 打包为Runtime版本 308

17.4.1 打包Egret Runtime版本 308

17.4.2 测试Runtime版本游戏 309

17.4.3 Egret Runtime中的白名单 310

17.5 小结 311

第18章 DragonBones骨骼动画系统 312

18.1 DragonBones简介 312

18.1.1 DragonBones的由来 312

18.1.2 DragonBones产品家族 313

18.1.3 DragonBones产品特点 313

18.2 2D骨骼动画的基本概念 314

18.2.1 骨骼动画的优势和原理 314

18.2.2 DragonBones 2D骨骼动画中的常用术语 314

18.3 DragonBones Pro介绍 316

18.3.1 DragonBones Pro的下载与安装 316

18.3.2 编辑界面详解 318

18.3.3 基本动画项目 329

18.3.4 项目的导入与导出 331

18.4 DragonBones骨骼动画开发入门 333

18.4.1 做好准备工作 333

18.4.2 学习一个示例 334

18.5 DragonBones骨骼动画数据格式详解 338

18.5.1 DragonBones 4.0格式说明 338

18.5.2 Armature数据格式 341

18.5.3 Bone数据格式 342

18.5.4 Slot数据格式 342

18.5.5 Skin数据格式 343

18.5.6 Animation数据格式 344

18.6 DragonBones骨骼动画事件系统详解 346

18.7 DragonBones常用高级功能 347

18.7.1 动态换装 347

18.7.2 程序控制骨骼运动 349

18.7.3 改变动画速度 349

18.7.4 动画复用 350

18.7.5 动画遮罩与混合 350

18.8 DragonBones极速模式 351

18.8.1 极速模式简介 351

18.8.2 快速使用极速模式 352

18.8.3 极速模式详解 353

18.8.4 深入使用数据缓存 355

18.9 小结 356

第19章 P2物理引擎 357

19.1 P2物理引擎简介 357

19.1.1 什么是P2物理引擎 357

19.1.2 创建一个P2物理项目 358

19.1.3 用p2DebugDraw实现模拟视图 361

19.2 P2中的形状 365

19.2.1 形状 365

19.2.2 形状属性 375

19.2.3 形状贴图 378

19.3 刚体属性 380

19.3.1 速度相关 380

19.3.2 角度相关 383

19.3.3 对象相关 385

19.3.4 其他属性 385

19.4 刚体操作 388

19.4.1 addBody和 removeBody 388

19.4.2 addShape和removeShape 388

19.4.3 adjustCenterOfMass 391

19.4.4 applyForce 393

19.4.5 applyImpulse 398

19.4.6 sleep和wakeup 403

19.4.7 emit、on、off、 has 406

19.4.8 fromPolygon 408

19.4.9 hitTest 413

19.4.10 getAABB 416

19.4.11 getArea 421

19.4.12 setDensity 421

19.4.13 overlaps 422

19.4.14 toWorldFrame和toLocalFrame 426

19.4.15 rayCast 429

19.4.16 RayCastResult类 432

19.4.17 Raycast应用实例 433

19.5 碰撞处理 438

19.5.1 认识碰撞 439

19.5.2 碰撞事件 442

19.5.3 碰撞信息Equation 445

19.6 关节 452

19.6.1 DistanceConstraint 452

19.6.2 GearConstraint 457

19.6.3 LockConstraint 458

19.6.4 PrismaticConstraint 464

19.6.5 RevoluteConstraint 469

19.7 弹簧 474

19.7.1 LinearSpring 474

19.7.2 RotationalSpring 476

19.8 小结 477