logo
分类于: 编程语言 计算机基础 互联网

简介

Egret:HTML5游戏开发指南

Egret:HTML5游戏开发指南 0.0分

资源最后更新于 2020-03-29 03:01:55

作者:张鑫磊 等

出版社:出版社电子工业出版社

出版日期:2016-03

ISBN:9787121281938

文件格式: pdf

标签: 计算机 编程 软件开发 创业 HTML5 web Game

简介· · · · · ·

《Egret——HTML5游戏开发指南》由浅入深,在讲解游戏开发基础的同时提供众多实战案例供读者学习。《Egret——HTML5游戏开发指南》章节内容包含Egret基础概念及基础图形图像处理方法、网络相关操作、移动设备适配、性能优化、文本动画相关知识、调试技巧、DragonBones骨骼动画系统和P2物理引擎等。通过《Egret——HTML5游戏开发指南》,读者可以了解并掌握HTML5游戏开发技能,并通过Egret开发复杂又好玩的HTML5游戏。《Egret——HTML5游戏开发指南》适合喜欢游戏且有志于成为HTML5游戏开发者的人阅读,也适合具备其他平台游戏开发经验的人以及前端开发工程师了解和掌握HTML5开发技巧,并进入HTML5游戏开发领域。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. 前言
  2. 为什么要写这本书
  3. 本书特点
  4. 1.内容丰富,由浅入深
  5. 2.结构清晰,讲解到位
  6. 3.完整的案例源代码
  7. 本书适合的读者
  8. 本书分工与致谢
  9. 第1章 欢迎来到HTML5的世界
  10. 1.1 什么是HTML5
  11. 1.2 HTML5的前世今生
  12. 第一阶段:Web增强与破垄断
  13. 第二阶段:移动互联网
  14. 1.3 W3C与WHATWG工作组
  15. 1.4 令人称赞的Canvas与WebGL
  16. 1.4.1 Canvas
  17. 1.4.2 WebGL
  18. 1.5 何为HTML5游戏
  19. 1.5.1 从技术角度出发
  20. 1.5.2 从非技术角度出发
  21. 1.6 HTML5游戏的特点与痛点
  22. 1.6.1 特点
  23. 1.即点即玩
  24. 2.社交化
  25. 3.跨平台
  26. 4.开放
  27. 1.6.2 痛点
  28. 1.游戏开发商不成熟
  29. 2.渠道入口不完善
  30. 3.支付问题
  31. 1.7 HTML5游戏的当下与未来
  32. 1.7.1 产品研发阶段
  33. 1.7.2 测试上线运营阶段
  34. 1.7.3 未来
  35. 1.8 小结
  36. 第2章 奇妙的前端之旅
  37. 2.1 JavaScript的苦与痛
  38. 2.2 伟大的ECMAScript标准
  39. 2.2.1 ECMAScript标准是什么
  40. 2.2.2 历史
  41. 2.2.3 版本
  42. 2.3 JavaScript的代替品:Dart、CoffeeScript、TypeScript
  43. 2.3.1 Dart
  44. 2.3.2 CoffeeScript
  45. 2.3.3 TypeScript
  46. 2.4 初出茅庐的WebAssembly
  47. 2.4.1 WebAssembly是什么
  48. 2.4.2 asm.js
  49. 2.5 HTML5游戏开发利器——游戏引擎
  50. 2.6 一个神器:Egret Runtime
  51. 2.6.1 什么是Egret Runtime
  52. 2.6.2 为什么要用Egret Runtime
  53. 1.渲染性能表现
  54. 2.屏幕适配策略
  55. 3.充分利用硬件功能
  56. 2.7 小结
  57. 第3章 Hello Egret
  58. 3.1 Egret引擎简介
  59. 3.1.1 Egret引擎的特点
  60. 3.1.2 Egret引擎的主要功能
  61. 3.1.3 Egret引擎的应用案例
  62. 1.太极
  63. 2.诸神之战
  64. 3.2 搭建开发环境
  65. 3.2.1 Egret引擎版本的选择
  66. 1.Egret引擎版本号的设定规则
  67. 2.主版本号的升迁历史
  68. 3.Egret引擎安装过程及引擎维护界面
  69. 4.Egret多版本系统
  70. 3.2.2 Egret Wing:强大的IDE工具
  71. 3.2.3 ResDepot:资源管理工具
  72. 3.2.4 Texture Merger:资源打包工具
  73. 3.3 Hello World
  74. 3.3.1 创建第一个项目
  75. 3.3.2 运行项目
  76. 3.3.3 修改一下,成为自己的Hello World
  77. 3.4 Hello World分析
  78. 3.4.1 项目源代码目录
  79. 3.4.2 项目配置文件
  80. 3.4.3 项目运行库
  81. 3.4.4 项目编译目录
  82. 3.4.5 项目资源目录
  83. 3.4.6 项目发布目录
  84. 3.5 库与代码风格
  85. 3.5.1 Egret引擎的代码风格
  86. 3.5.2 核心库与扩展库的使用方法
  87. 3.5.3 第三方库的集成方法
  88. 1.准备第三方模块
  89. 2.部署第三方模块
  90. 3.在Egret项目中导入第三方模块
  91. 3.6 命令行模式详解
  92. 3.6.1 创建项目
  93. 3.6.2 编译项目
  94. 1.编译引擎
  95. 2.增量编译
  96. 3.6.3 运行项目
  97. 3.6.4 发布项目
  98. 3.6.5 了解更多
  99. 3.7 小结
  100. 第4章 游戏的基础知识
  101. 4.1 显示对象
  102. 4.1.1 什么是显示对象
  103. 4.1.2 坐标系
  104. 4.1.3 显示对象的种类
  105. 4.1.4 显示列表
  106. 4.2 显示对象的架构
  107. 4.2.1 容器与非容器
  108. 4.2.2 DisplayObject类与DisplayObjectContainer类
  109. 4.2.3 Sprite与Shape
  110. 4.3 Shape矢量图
  111. 4.3.1 绘制矩形
  112. 4.3.2 清空绘图
  113. 4.3.3 绘制圆形
  114. 4.3.4 绘制直线
  115. 4.3.5 绘制曲线
  116. 4.3.6 绘制圆弧
  117. 4.3.7 多个形状的绘制
  118. 4.4 显示列表与容器类
  119. 4.4.1 关于显示容器
  120. 1.轻量级的容器
  121. 2.自定义容器
  122. 4.4.2 添加与删除显示对象
  123. 1.添加显示对象到显示列表
  124. 2.删除显示对象
  125. 4.4.3 显示对象操作的注意点
  126. 1.显示对象独立于显示列表
  127. 2.相对坐标系
  128. 3.多次添加显示对象到显示列表
  129. 4.删除操作的注意点
  130. 4.5 遮罩与碰撞检测
  131. 4.5.1 遮罩的使用
  132. 4.5.2 非精确碰撞检测
  133. 4.5.3 精确碰撞检测
  134. 4.5.4 包围盒碰撞
  135. 4.6 混合模式
  136. 4.6.1 NORMAL模式
  137. 4.6.2 ADD模式
  138. 4.6.3 ERASE模式
  139. 4.7 小结
  140. 第5章 事件与用户交互
  141. 5.1 事件消息机制
  142. 5.1.1 事件处理机制的原理
  143. 5.1.2 第一个事件处理的例子
  144. 5.1.3 事件流机制
  145. 5.2 事件
  146. 5.2.1 事件类
  147. 1.bubbles属性
  148. 2.currentTarget属性
  149. 3.eventPhase属性
  150. 4.target属性
  151. 5.data属性
  152. 6.stopPropagation()和stopImmediatePropagation()方法
  153. 7.type属性
  154. 5.2.2 自定义事件
  155. 5.3 侦听器
  156. 5.3.1 创建侦听器
  157. 5.3.2 注册侦听器与移除侦听器
  158. 5.3.3 侦听器中的this
  159. 5.4 事件的优先级
  160. 5.5 自定义事件发送类
  161. 5.5.1 继承EventDispatcher
  162. 5.5.2 复合EventDispatcher
  163. 5.5.3 实现IEventDispatcher接口
  164. 5.6 触摸事件
  165. 5.6.1 触摸事件类型
  166. 5.6.2 开启touchEnable
  167. 5.7 实践:同色点点看
  168. 5.8 小结
  169. 第6章 游戏资源管理
  170. 6.1 RES资源加载模块
  171. 6.2 资源配置文件
  172. 6.3 加载资源配置文件
  173. 6.3.1 外部文件
  174. 6.3.2 直接读取
  175. 6.3.3 对比说明
  176. 6.4 预加载资源组
  177. 6.5 动态创建资源组
  178. 6.6 读取资源文件
  179. 6.7 资源的缓存机制
  180. 6.8 释放资源
  181. 6.9 内置文件类型解析器
  182. 6.9.1 配置九宫格参数
  183. 6.9.2 配置声音资源
  184. 6.9.3 读取解析二进制文件
  185. 6.10 扩展资源文件类型解析器
  186. 6.11 小结
  187. 第7章 位图操作
  188. 7.1 创建位图
  189. 7.1.1 认识位图
  190. 7.1.2 位图格式
  191. 7.1.3 位图来源
  192. 7.1.4 位图加载
  193. 7.1.5 位图显示
  194. 7.2 操作纹理集
  195. 7.2.1 从RES中获取纹理
  196. 7.2.2 SpriteSheet纹理集类
  197. 1.使用Texture Merger生成纹理集
  198. 2.使用纹理集
  199. 7.3 纹理填充方式
  200. 7.3.1 位图填充拉伸以填充区域
  201. 7.3.2 重复位图以填充区域
  202. 7.4 位图的九宫格
  203. 7.4.1 缘起
  204. 7.4.2 九宫格原理
  205. 7.4.3 代码中使用九宫格
  206. 7.4.4 通过ResDepot设置九宫格
  207. 7.5 滤镜
  208. 7.5.1 滤镜可用性及WebGL开关
  209. 7.5.2 发光滤镜
  210. 7.5.3 投影滤镜
  211. 7.5.4 颜色矩阵滤镜
  212. 7.5.5 模糊滤镜
  213. 7.5.6 设置滤镜品质
  214. 7.5.7 滤镜使用优化技巧
  215. 7.6 实践:《抓间谍》
  216. 7.6.1 游戏设计稿
  217. 7.6.2 准备素材
  218. 7.6.3 编写代码
  219. 1.初始化
  220. 2.间谍目标变换
  221. 3.倒计时部分
  222. 4.角色变换和抓捕
  223. 5.胜负判断
  224. 6.游戏源码下载
  225. 7.7 小结
  226. 第8章 文本
  227. 8.1 普通文本
  228. 8.1.1 创建普通文本
  229. 8.1.2 设置文本样式
  230. 1.创建文本边框
  231. 2.创建文本描边
  232. 3.创建文本粗体与斜体
  233. 8.1.3 字体的设置
  234. 8.1.4 多样式混合文本
  235. 8.1.5 设置文本超链接
  236. 8.2 输入文本
  237. 8.2.1 创建可输入文本
  238. 8.2.2 设置输入文本样式
  239. 8.3 位图文本
  240. 8.3.1 创建位图文本字体
  241. 8.3.2 位图文本的使用
  242. 8.4 实践:游戏登录和活动公告板
  243. 1.Main.ts代码
  244. 2.BulletinPanel代码
  245. 8.5 小结
  246. 第9章 动画与粒子特效
  247. 9.1 逐帧动画
  248. 9.1.1 逐帧动画简介
  249. 9.1.2 动画素材制作方法
  250. 方式一:从GIF图片转换为逐帧动画数据
  251. 方式二:从SWF动画中转换
  252. 方式三:安装Flash插件
  253. 9.1.3 创建一个逐帧动画
  254. 9.1.4 播放和暂停动画
  255. 9.1.5 跳转动画
  256. 9.1.6 动态切换动画数据
  257. 9.1.7 动画的缓存机制
  258. 9.1.8 动画数据详解
  259. 1.mc段
  260. 2.res段
  261. 9.2 缓动动画
  262. 9.2.1 Tween缓动动画
  263. 9.2.2 缓动的基本用法
  264. 9.2.3 缓动对象的基本控制参数
  265. 9.2.4 缓动对象的缓动变化事件
  266. 9.2.5 缓动过程参数设定
  267. 9.2.6 缓动对象的其他方法
  268. 9.3 粒子特效
  269. 9.3.1 粒子系统简介
  270. 9.3.2 粒子系统使用
  271. 1.初始化
  272. 2.配置文件
  273. 3.启动
  274. 4.停止
  275. 5.更换纹理
  276. 6.创建示例
  277. 9.3.3 自定义粒子特效
  278. 1.扩展流程
  279. 2.需要重写的方法
  280. 9.4 小结
  281. 第10章 音乐与音效
  282. 10.1 声音类
  283. 10.1.1 egret.Sound类
  284. 10.1.2 使用声音类
  285. 10.2 音频控制类
  286. 10.2.1 播放
  287. 10.2.2 音量
  288. 10.2.3 暂停
  289. 10.3 声音事件
  290. 10.4 音乐与音效类型设置
  291. 10.5 小结
  292. 第11章 数据操作
  293. 11.1 JSON数据操作
  294. 11.1.1 JSON数据格式简介
  295. 11.1.2 为什么使用JSON数据格式
  296. 11.1.3 在Egret中加载JSON数据
  297. 11.1.4 在Egret中操作JSON数据
  298. 11.2 二进制数据操作
  299. 11.2.1 读取二进制数据对象
  300. 11.2.2 写入字节流
  301. 11.2.3 定位字节流指针
  302. 11.2.4 读取字节流
  303. 11.2.5 大端模式与小端模式
  304. 11.3 实践:仿《找你妹》游戏
  305. 11.3.1 游戏策划案
  306. 11.3.2 准备资源
  307. 1.图片资源
  308. 2.数据资源
  309. 11.3.3 编写代码
  310. 1.背景以及UI
  311. 2.倒计时部分
  312. 3.关卡核心逻辑
  313. 4.胜负判断
  314. 5.游戏预览
  315. 11.4 小结
  316. 第12章 网络通信
  317. 12.1 HTTP网络请求
  318. 12.1.1 构建简单的网络请求
  319. 12.1.2 POST与GET请求
  320. 12.1.3 发送带有数据的网络请求
  321. 12.1.4 检测网络请求状态
  322. 12.2 WebSocket通信
  323. 12.2.1 创建WebSocket连接
  324. 12.2.2 发送数据
  325. 12.2.3 读取数据
  326. 12.2.4 WebSocket的网络状态
  327. 12.2.5 断开与重连服务器
  328. 12.3 实践:游戏中的聊天室
  329. 12.4 小结
  330. 第13章 计时器与心跳控制器
  331. 13.1 Timer
  332. 13.1.1 创建计时器
  333. 13.1.2 加入计时器事件侦听
  334. 13.1.3 启动计时器
  335. 13.1.4 修改计时器时间间隔
  336. 13.1.5 修改计时器
  337. 13.2 Ticker
  338. 13.2.1 Ticker与Timer的不同
  339. 13.2.2 开启心跳侦听
  340. 13.2.3 移除心跳侦听
  341. 13.2.4 Ticker的最新用法
  342. 13.3 setTimeout与clearTimeout
  343. 13.4 getTimer
  344. 13.5 《抓间谍》和《找你妹》
  345. 13.5.1 《抓间谍》
  346. 1.关卡倒计时
  347. 2.情报系统更新
  348. 3.角色变换和抓捕
  349. 4.练习
  350. 13.5.2 《找你妹》
  351. 13.6 小结
  352. 第14章 反射机制与依赖注入
  353. 14.1 反射机制
  354. 14.1.1 什么是反射机制
  355. 14.1.2 getDefinitionByName方法
  356. 14.1.3 获取运行时对象类型
  357. 14.1.4 检查域内定义
  358. 14.2 依赖注入
  359. 14.2.1 什么是依赖注入
  360. 14.2.2 Injector注入器
  361. 14.2.3 注入器的应用场景
  362. 14.3 小结
  363. 第15章 屏幕适配与环境交互
  364. 15.1 4种屏幕适配策略
  365. 15.1.1 设置屏幕适配策略
  366. 15.1.2 exactFit模式
  367. 15.1.3 noScale模式
  368. 15.1.4 showAll模式
  369. 15.1.5 fixedWidth模式和fixedHeight模式
  370. 15.1.6 noBorder模式
  371. 15.1.7 在程序内设置缩放模式
  372. 15.2 屏幕方向设置
  373. 15.2.1 竖屏模式
  374. 15.2.2 横屏模式
  375. 15.2.3 反向横屏模式
  376. 15.2.4 自动模式
  377. 15.3 环境交互
  378. 15.3.1 Egret与网页JavaScript交互
  379. 15.3.2 读取网页GET参数
  380. 15.4 小结
  381. 第16章 调试与性能检测
  382. 16.1 TypeScript断点调试
  383. 16.2 日志输出面板
  384. 16.2.1 打开日志显示开关
  385. 16.2.2 输出日志
  386. 16.2.3 显示脏矩形和帧频信息
  387. 16.3 Egret Inspector浏览器调试工具
  388. 16.3.1 安装Egret Inspector
  389. 16.3.2 运行Egret Inspector
  390. 16.4 小结
  391. 第17章 打包发布到原生平台
  392. 17.1 打包原生APP原理
  393. 17.1.1 编译型语言和解释型语言
  394. 17.1.2 浏览器内核与JavaScript解释器
  395. 17.2 打包为iOS原生APP
  396. 17.2.1 下载Egret iOS Support
  397. 17.2.2 将HTML5游戏打包为iOS原生APP
  398. 17.3 打包为Android原生APP
  399. 17.3.1 下载Egret Android Support
  400. 17.3.2 将HTML5游戏打包为Android原生APP
  401. 17.4 打包为Runtime版本
  402. 17.4.1 打包Egret Runtime版本
  403. 17.4.2 测试Runtime版本游戏
  404. 17.4.3 Egret Runtime中的白名单
  405. 17.5 小结
  406. 第18章 DragonBones骨骼动画系统
  407. 18.1 DragonBones简介
  408. 18.1.1 DragonBones的由来
  409. 18.1.2 DragonBones产品家族
  410. 18.1.3 DragonBones产品特点
  411. 18.2 2D骨骼动画的基本概念
  412. 18.2.1 骨骼动画的优势和原理
  413. 18.2.2 DragonBones 2D骨骼动画中的常用术语
  414. 骨架
  415. 骨骼(骨头)
  416. 插槽
  417. 图片(纹理)
  418. 纹理集
  419. 动画补间
  420. 动画过渡
  421. 动画融合
  422. 正向动力学(FK)和反向动力学(IK)
  423. 18.3 DragonBones Pro介绍
  424. 18.3.1 DragonBones Pro的下载与安装
  425. 18.3.2 编辑界面详解
  426. 1.系统工具栏
  427. 2.主场景工具栏
  428. 3.可见可选过滤面板
  429. 4.变换面板
  430. 5.场景树面板
  431. 6.层级面板
  432. 7.资源面板
  433. 8.编辑模式切换按钮
  434. 9.动画面板
  435. 10.时间轴面板
  436. 18.3.3 基本动画项目
  437. 1.空关键帧
  438. 2.图片添加方法
  439. 3.图层顺序
  440. 4.轴点工具
  441. 18.3.4 项目的导入与导出
  442. 18.4 DragonBones骨骼动画开发入门
  443. 18.4.1 做好准备工作
  444. 18.4.2 学习一个示例
  445. 18.5 DragonBones骨骼动画数据格式详解
  446. 18.5.1 DragonBones 4.0格式说明
  447. 18.5.2 Armature数据格式
  448. 18.5.3 Bone数据格式
  449. 18.5.4 Slot数据格式
  450. 18.5.5 Skin数据格式
  451. 18.5.6 Animation数据格式
  452. 18.6 DragonBones骨骼动画事件系统详解
  453. 18.7 DragonBones常用高级功能
  454. 18.7.1 动态换装
  455. 18.7.2 程序控制骨骼运动
  456. 18.7.3 改变动画速度
  457. 18.7.4 动画复用
  458. 18.7.5 动画遮罩与混合
  459. 18.8 DragonBones极速模式
  460. 18.8.1 极速模式简介
  461. 18.8.2 快速使用极速模式
  462. 18.8.3 极速模式详解
  463. 18.8.4 深入使用数据缓存
  464. 18.9 小结
  465. 第19章 P2物理引擎
  466. 19.1 P2物理引擎简介
  467. 19.1.1 什么是P2物理引擎
  468. 19.1.2 创建一个P2物理项目
  469. 19.1.3 用p2DebugDraw实现模拟视图
  470. 19.2 P2中的形状
  471. 19.2.1 形状
  472. 1.Circle圆形
  473. 2.Box矩形
  474. 3.Capsule胶囊形状
  475. 4.Particle粒子形状
  476. 5.Line线段形状
  477. 6.Plane平面形状
  478. 7.Heightfield海拔形状
  479. 8.Convex多边形形状
  480. 19.2.2 形状属性
  481. 19.2.3 形状贴图
  482. 19.3 刚体属性
  483. 19.3.1 速度相关
  484. 1.position
  485. 2.velocity
  486. 3.damping
  487. 4.fixedX
  488. 5.fixedY
  489. 6.force
  490. 7.gravityScale
  491. 19.3.2 角度相关
  492. 1.angle
  493. 2.angularVelocity
  494. 3.angularDamping
  495. 4.angularForce
  496. 5.fixedRotation
  497. 19.3.3 对象相关
  498. 1.shapes
  499. 2.world
  500. 19.3.4 其他属性
  501. 1.id
  502. 2.type
  503. 3.mass
  504. 4.ccdIterations
  505. 5.ccdSpeedThreshold
  506. 6.collisionResponse
  507. 7.allowSleep
  508. 8.sleepSpeedLimit
  509. 9.sleepState
  510. 10.sleepTimeLimit
  511. 11.idleTime
  512. 19.4 刚体操作
  513. 19.4.1 addBody和removeBody
  514. 19.4.2 addShape和removeShape
  515. 19.4.3 adjustCenterOfMass
  516. 19.4.4 applyForce
  517. 19.4.5 applyImpulse
  518. 19.4.6 sleep和wakeup
  519. 19.4.7 emit、on、off、has
  520. 19.4.8 fromPolygon
  521. 19.4.9 hitTest
  522. 19.4.10 getAABB
  523. 19.4.11 getArea
  524. 19.4.12 setDensity
  525. 19.4.13 overlaps
  526. 19.4.14 toWorldFrame和toLocalFrame
  527. 19.4.15 rayCast
  528. 1.raycast函数
  529. 2.Ray类
  530. 19.4.16 RayCastResult类
  531. 19.4.17 Raycast应用实例
  532. 19.5 碰撞处理
  533. 19.5.1 认识碰撞
  534. 19.5.2 碰撞事件
  535. 1.碰撞检测
  536. 2.postBroadPhaseEvent
  537. 3.preSolveEvent
  538. 4.beginContact
  539. 5.endContact
  540. 19.5.3 碰撞信息Equation
  541. 1.ContactEquation
  542. 2.FrictionEquation
  543. 19.6 关节
  544. 19.6.1 DistanceConstraint
  545. 19.6.2 GearConstraint
  546. 19.6.3 LockConstraint
  547. 19.6.4 PrismaticConstraint
  548. 19.6.5 RevoluteConstraint
  549. 19.7 弹簧
  550. 19.7.1 LinearSpring
  551. 19.7.2 RotationalSpring
  552. 19.8 小结