具体描述
《Egret——HTML5游戏开发指南》由浅入深,在讲解游戏开发基础的同时提供众多实战案例供读者学习。《Egret——HTML5游戏开发指南》章节内容包含Egret基础概念及基础图形图像处理方法、网络相关操作、移动设备适配、性能优化、文本动画相关知识、调试技巧、DragonBones骨骼动画系统和P2物理引擎等。通过《Egret——HTML5游戏开发指南》,读者可以了解并掌握HTML5游戏开发技能,并通过Egret开发复杂又好玩的HTML5游戏。
《Egret——HTML5游戏开发指南》适合喜欢游戏且有志于成为HTML5游戏开发者的人阅读,也适合具备其他平台游戏开发经验的人以及前端开发工程师了解和掌握HTML5开发技巧,并进入HTML5游戏开发领域
作者简介
目录信息
1.1 什么是HTML5
1.2 HTML5的前世今生
1.3 W3C与WHATWG工作组
1.4 令人称赞的Canvas与WebGL
1.4.1 Canvas
1.4.2 WebGL
1.5 何为HTML5游戏
1.5.1 从技术角度出发
1.5.2 从非技术角度出发
1.6 HTML5游戏的特点与痛点
1.6.1 特点
1.6.2 痛点
1.7 HTML5游戏的当下与未来
1.7.1 产品研发阶段
1.7.2 测试上线运营阶段
1.7.3 未来
1.8 小结
第2章 奇妙的前端之旅
2.1 JavaScript的苦与痛
2.2 伟大的ECMAScript标准
2.2.1 ECMAScript标准是什么
2.2.2 历史
2.2.3 版本
2.3 JavaScript的代替品:Dart、CoffeeScript、TypeScript
2.3.1 Dart
2.3.2 CoffeeScript
2.3.3 TypeScript
2.4 初出茅庐的WebAssembly
2.4.1 WebAssembly是什么
2.4.2 asm.js
2.5 HTML5游戏开发利器——游戏引擎
2.6 一个神器:Egret Runtime
2.6.1 什么是Egret Runtime
2.6.2 为什么要用 Egret Runtime
2.7 小结
第3章 Hello Egret
3.1 Egret 引擎简介
3.1.1 Egret引擎的特点
3.1.2 Egret引擎的主要功能
3.1.3 Egret引擎的应用案例
3.2 搭建开发环境
3.2.1 Egret引擎版本的选择
3.2.2 Egret Wing:强大的IDE工具
3.2.3 ResDepot:资源管理工具
3.2.4 Texture Merger:资源打包工具
3.3 Hello World
3.3.1 创建第一个项目
3.3.2 运行项目
3.3.3 修改一下,成为自己的Hello World
3.4 Hello World分析
3.4.1 项目源代码目录
3.4.2 项目配置文件
3.4.3 项目运行库
3.4.4 项目编译目录
3.4.5 项目资源目录
3.4.6 项目发布目录
3.5 库与代码风格
3.5.1 Egret引擎的代码风格
3.5.2 核心库与扩展库的使用方法
3.5.3 第三方库的集成方法
3.6 命令行模式详解
3.6.1 创建项目
3.6.2 编译项目
3.6.3 运行项目
3.6.4 发布项目
3.6.5 了解更多
3.7 小结
第4章 游戏的基础知识
4.1 显示对象
4.1.1 什么是显示对象
4.1.2 坐标系
4.1.3 显示对象的种类
4.1.4 显示列表
4.2 显示对象的架构
4.2.1 容器与非容器
4.2.2 DisplayObject类 与 DisplayObjectContainer类
4.2.3 Sprite与Shape
4.3 Shape矢量图
4.3.1 绘制矩形
4.3.2 清空绘图
4.3.3 绘制圆形
4.3.4 绘制直线
4.3.5 绘制曲线
4.3.6 绘制圆弧
4.3.7 多个形状的绘制
4.4 显示列表与容器类
4.4.1 关于显示容器
4.4.2 添加与删除显示对象
4.4.3 显示对象操作的注意点
4.5 遮罩与碰撞检测
4.5.1 遮罩的使用
4.5.2 非精确碰撞检测
4.5.3 精确碰撞检测
4.5.4 包围盒碰撞
4.6 混合模式
4.6.1 NORMAL模式
4.6.2 ADD模式
4.6.3 ERASE模式
4.7 小结
第5章 事件与用户交互
5.1 事件消息机制
5.1.1 事件处理机制的原理
5.1.2 第一个事件处理的例子
5.1.3事件流机制
5.2 事件
5.2.1 事件类
5.2.2 自定义事件
5.3 侦听器
5.3.1 创建侦听器
5.3.2 注册侦听器与移除侦听器
5.3.3 侦听器中的this
5.4 事件的优先级
5.5 自定义事件发送类
5.5.1 继承EventDispatcher
5.5.2 复合EventDispatcher
5.5.3 实现IEventDispatcher接口
5.6 触摸事件
5.6.1 触摸事件类型
5.6.2 开启touchEnable
5.7 实践:同色点点看
5.8 小结
第6章 游戏资源管理
6.1 RES资源加载模块
6.2 资源配置文件
6.3 加载资源配置文件
6.3.1 外部文件
6.3.2 直接读取
6.3.3 对比说明
6.4 预加载资源组
6.5 动态创建资源组
6.6 读取资源文件
6.7 资源的缓存机制
6.8 释放资源
6.9 内置文件类型解析器
6.9.1 配置九宫格参数
6.9.2 配置声音资源
6.9.3 读取解析二进制文件
6.10 扩展资源文件类型解析器
6.11 小结
第7章 位图操作
7.1 创建位图
7.1.1 认识位图
7.1.2 位图格式
7.1.3 位图来源
7.1.4 位图加载
7.1.5 位图显示
7.2 操作纹理集
7.2.1 从RES中获取纹理
7.2.2 SpriteSheet纹理集类
7.3 纹理填充方式
7.3.1 位图填充拉伸以填充区域
7.3.2 重复位图以填充区域
7.4 位图的九宫格
7.4.1 缘起
7.4.2 九宫格原理
7.4.3 代码中使用九宫格
7.4.4 通过ResDepot设置九宫格
7.5 滤镜
7.5.1 滤镜可用性及WebGL开关
7.5.2 发光滤镜
7.5.3 投影滤镜
7.5.4 颜色矩阵滤镜
7.5.5 模糊滤镜
7.5.6 设置滤镜品质
7.5.7 滤镜使用优化技巧
7.6 实践:《抓间谍》
7.6.1 游戏设计稿
7.6.2 准备素材
7.6.3 编写代码
7.7 小结
第8章 文本
8.1 普通文本
8.1.1 创建普通文本
8.1.2 设置文本样式
8.1.3 字体的设置
8.1.4 多样式混合文本
8.1.5 设置文本超链接
8.2 输入文本
8.2.1 创建可输入文本
8.2.2 设置输入文本样式
8.3 位图文本
8.3.1 创建位图文本字体
8.3.2 位图文本的使用
8.4 实践:游戏登录和活动公告板
8.5 小结
第9章 动画与粒子特效
9.1 逐帧动画
9.1.1 逐帧动画简介
9.1.2 动画素材制作方法
9.1.3 创建一个逐帧动画
9.1.4 播放和暂停动画
9.1.5 跳转动画
9.1.6 动态切换动画数据
9.1.7 动画的缓存机制
9.1.8 动画数据详解
9.2 缓动动画
9.2.1 Tween缓动动画
9.2.2 缓动的基本用法
9.2.3 缓动对象的基本控制参数
9.2.4 缓动对象的缓动变化事件
9.2.5 缓动过程参数设定
9.2.6 缓动对象的其他方法
9.3 粒子特效
9.3.1 粒子系统简介
9.3.2 粒子系统使用
9.3.3 自定义粒子特效
9.4 小结
第10章 音乐与音效
10.1 声音类
10.1.1 egret.Sound 类
10.1.2使用声音类
10.2 音频控制类
10.2.1 播放
10.2.2 音量
10.2.3 暂停
10.3 声音事件
10.4 音乐与音效类型设置
10.5 小结
第11章 数据操作
11.1 JSON数据操作
11.1.1 JSON数据格式简介
11.1.2 为什么使用JSON数据格式
11.1.3 在Egret中加载JSON数据
11.1.4 在Egret中操作JSON数据
11.2 二进制数据操作
11.2.1 读取二进制数据对象
11.2.2 写入字节流
11.2.3 定位字节流指针
11.2.4 读取字节流
11.2.5 大端模式与小端模式
11.3 实践:仿《找你妹》游戏
11.3.1 游戏策划案
11.3.2 准备资源
11.3.3 编写代码
11.4 小结
第12章 网络通信
12.1 HTTP网络请求
12.1.1 构建简单的网络请求
12.1.2 POST 与 GET 请求
12.1.3 发送带有数据的网络请求
12.1.4 检测网络请求状态
12.2 WebSocket通信
12.2.1 创建WebSocket连接
12.2.2 发送数据
12.2.3 读取数据
12.2.4 WebSocket的网络状态
12.2.5 断开与重连服务器
12.3 实践:游戏中的聊天室
12.4 小结
第13章 计时器与心跳控制器
13.1 Timer
13.1.1 创建计时器
13.1.2 加入计时器事件侦听
13.1.3 启动计时器
13.1.4 修改计时器时间间隔
13.1.5 修改计时器
13.2 Ticker
13.2.1 Ticker与Timer的不同
13.2.2 开启心跳侦听
13.2.3 移除心跳侦听
13.2.4 Ticker的最新用法
13.3 setTimeout与clearTimeout
13.4 getTimer
13.5 《抓间谍》和《找你妹》
13.5.1 《抓间谍》
13.5.2 《找你妹》
13.6 小结
第14章 反射机制与依赖注入
14.1 反射机制
14.1.1 什么是反射机制
14.1.2 getDefinitionByName方法
14.1.3 获取运行时对象类型
14.1.4 检查域内定义
14.2 依赖注入
14.2.1 什么是依赖注入
14.2.2 Injector注入器
14.2.3 注入器的应用场景
14.3 小结
第15章 屏幕适配与环境交互
15.1 4种屏幕适配策略
15.1.1 设置屏幕适配策略
15.1.2 exactFit 模式
15.1.3 noScale 模式
15.1.4 showAll 模式
15.1.5 fixedWidth模式和fixedHeight模式
15.1.6 noBorder模式
15.1.7 在程序内设置缩放模式
15.2 屏幕方向设置
15.2.1 竖屏模式
15.2.2 横屏模式
15.2.3 反向横屏模式
15.2.4 自动模式
15.3 环境交互
15.3.1 Egret与网页JavaScript交互
15.3.2 读取网页GET参数
15.4 小结
第16章 调试与性能检测
16.1 TypeScript断点调试
16.2 日志输出面板
16.2.1 打开日志显示开关
16.2.2 输出日志
16.2.3 显示脏矩形和帧频信息
16.3 Egret Inspector浏览器调试工具
16.3.1 安装Egret Inspector
16.3.2 运行Egret Inspector
16.4 小结
第17章 打包发布到原生平台
17.1 打包原生APP原理
17.1.1 编译型语言和解释型语言
17.1.2 浏览器内核与JavaScript解释器
17.2 打包为iOS原生APP
17.2.1 下载Egret iOS Support
17.2.2 将HTML5游戏打包为iOS原生APP
17.3 打包为Android原生APP
17.3.1 下载Egret Android Support
17.3.2 将HTML5游戏打包为Android原生APP
17.4 打包为Runtime版本
17.4.1 打包Egret Runtime版本
17.4.2 测试Runtime版本游戏
17.4.3 Egret Runtime 中的白名单
17.5 小结
第18章 DragonBones骨骼动画系统
18.1 DragonBones简介
18.1.1 DragonBones的由来
18.1.2 DragonBones产品家族
18.1.3 DragonBones产品特点
18.2 2D骨骼动画的基本概念
18.2.1 骨骼动画的优势和原理
18.2.2 DragonBones 2D骨骼动画中的常用术语
18.3 DragonBones Pro介绍
18.3.1 DragonBones Pro的下载与安装
18.3.2 编辑界面详解
18.3.3 基本动画项目
18.3.4 项目的导入与导出
18.4 DragonBones骨骼动画开发入门
18.4.1 做好准备工作
18.4.2 学习一个示例
18.5 DragonBones骨骼动画数据格式详解
18.5.1 DragonBones 4.0 格式说明
18.5.2 Armature 数据格式
18.5.3 Bone 数据格式
18.5.4 Slot 数据格式
18.5.5 Skin 数据格式
18.5.6 Animation数据格式
18.6 DragonBones骨骼动画事件系统详解
18.7 DragonBones常用高级功能
18.7.1 动态换装
18.7.2 程序控制骨骼运动
18.7.3 改变动画速度
18.7.4 动画复用
18.7.5 动画遮罩与混合
18.8 DragonBones极速模式
18.8.1 极速模式简介
18.8.2 快速使用极速模式
18.8.3 极速模式详解
18.8.4 深入使用数据缓存
18.9 小结
第19章 P2物理引擎
19.1 P2物理引擎简介
19.1.1 什么是P2物理引擎
19.1.2 创建一个P2物理项目
19.1.3 用p2DebugDraw实现模拟视图
19.2 P2中的形状
19.2.1 形状
19.2.2 形状属性
19.2.3 形状贴图
19.3 刚体属性
19.3.1 速度相关
19.3.2 角度相关
19.3.3 对象相关
19.3.4 其他属性
19.4 刚体操作
19.4.1 addBody和removeBody
19.4.2 addShape和removeShape
19.4.3 adjustCenterOfMass
19.4.4 applyForce
19.4.5 applyImpulse
19.4.6 sleep和wakeup
19.4.7 emit、on、off、has
19.4.8 fromPolygon
19.4.9 hitTest
19.4.10 getAABB
19.4.11 getArea
19.4.12 setDensity
19.4.13 overlaps
19.4.14 toWorldFrame和toLocalFrame
19.4.15 rayCast
19.4.16 RayCastResult类
19.4.17 Raycast应用实例
19.5 碰撞处理
19.5.1 认识碰撞
19.5.2 碰撞事件
19.5.3 碰撞信息Equation
19.6 关节
19.6.1 DistanceConstraint
19.6.2 GearConstraint
19.6.3 LockConstraint
19.6.4 PrismaticConstraint
19.6.5 RevoluteConstraint
19.7 弹簧
19.7.1 LinearSpring
19.7.2 RotationalSpring
19.8 小结
· · · · · · (收起)
读后感
用户评价
在游戏的开发过程中,数据的持久化存储和网络通信也扮演着至关重要的角色。《Egret——HTML5游戏开发指南》在我看来,一定不会忽视这些关键环节。我猜想书中可能会探讨如何利用浏览器的本地存储(如LocalStorage、SessionStorage)来保存玩家的游戏进度、设置等信息,让玩家可以随时中断和继续游戏。 更进一步,对于需要多人在线互动或从服务器获取数据的游戏,《Egret——HTML5游戏开发指南》是否会介绍Egret与后端服务器进行通信的机制?例如,如何使用WebSocket或HTTP请求来发送和接收数据,如何处理网络延迟和异常情况。了解这些内容,将为我开发更复杂、更具社交性的游戏奠定基础,让我的游戏开发之路更加宽广。
一款优秀的游戏离不开扎实的逻辑支撑,而《Egret——HTML5游戏开发指南》在我看来,一定在游戏逻辑的实现方面提供了详实的指导。我预感书中会详细介绍Egret中事件处理机制,包括如何监听用户的触摸、键盘输入等,并将这些输入转化为游戏内的动作。对于玩家操控角色的移动、攻击,以及游戏中的各种状态切换,比如从主菜单进入游戏、游戏暂停、游戏结束等,我希望书中能提供清晰的实现思路和代码范例。 此外,游戏的AI设计也是我一直想要学习的重点。即使是简单的NPC行为,也需要一定的逻辑来驱动。我非常期待书中能够介绍一些基础的AI算法,例如路径寻找、状态机等,并展示如何在Egret中应用这些算法来创建更具挑战性和趣味性的敌人或NPC。了解如何让游戏中的角色做出合理的反应,将大大提升游戏的互动性和可玩性。
我对于游戏中各种炫酷的视觉效果和交互体验一直充满好奇,而Egret正是以其强大的2D渲染能力而闻名。《Egret——HTML5游戏开发指南》这本书,我期待它能深入剖析Egret在图形绘制、动画制作方面的强大功能。我特别希望书中能有关于精灵(Sprite)的使用、位图(Bitmap)的优化、以及如何实现复杂的动画序列的讲解。能否通过简单的代码示例,展示如何创建流畅的角色动画、粒子特效,甚至是如何实现一些基础的2D物理效果,这些都是我非常感兴趣的部分。 而且,书中在UI系统方面的阐述也引起了我的高度关注。毕竟,一个好的游戏界面不仅能提升玩家的沉浸感,也是游戏操作顺畅的关键。我希望作者能够详细介绍Egret的UI组件,比如按钮、文本框、滚动条等,以及如何自定义这些组件以符合游戏的整体风格。更重要的是,我想知道如何利用Egret的UI系统来构建响应式的界面,确保游戏在不同尺寸的屏幕上都能有良好的显示效果。
作为一名怀揣着游戏开发梦想的初学者,我一直在寻找一本能够系统地引导我入门HTML5游戏开发的书籍。最近,我终于觅得《Egret——HTML5游戏开发指南》,虽然我还没来得及深入阅读,但仅仅从这本书的目录和初步翻阅来看,它就深深吸引了我,让我对即将开启的这段学习旅程充满了期待。 首先,这本书的结构安排非常合理。它似乎从最基础的Egret框架概念入手,循序渐进地讲解了创建项目、理解核心API、以及如何搭建游戏的基本结构。这一点对于我这样零基础的开发者来说至关重要,不用担心一开始就接触过于复杂的技术而感到无从下手。我特别关注到书中可能涉及到的“场景管理”和“资源加载”等内容,因为我知道这是构建一个流畅游戏体验的基石。我迫切地想知道作者是如何将这些概念讲解得清晰易懂,是否能通过实例演示来帮助我快速理解。
对于游戏性能的优化,一直是所有游戏开发者必须面对的难题。我猜测《Egret——HTML5游戏开发指南》这本书不会仅仅停留在实现功能层面,更会对性能优化给出深刻的见解。例如,在处理大量游戏对象时,如何避免卡顿;在加载资源时,如何提高效率;以及如何合理地使用Egret的绘图API来减少GPU的负担。 我特别希望书中能提供一些实用的性能调优技巧,比如如何进行对象池的复用,如何合并绘制调用,以及如何利用Egret提供的性能分析工具来定位和解决潜在的性能瓶颈。一个流畅运行的游戏,才是留住玩家的关键,所以我对这部分内容抱有极大的期望,希望它能帮助我写出更高效、更出色的HTML5游戏。
读完文档整个人还是蒙的,读完书好像懂了些皮毛,又试了一个简单案例,终于有点入门的感觉。
读完文档整个人还是蒙的,读完书好像懂了些皮毛,又试了一个简单案例,终于有点入门的感觉。
读完文档整个人还是蒙的,读完书好像懂了些皮毛,又试了一个简单案例,终于有点入门的感觉。
学习egret的基础知识,虽然都是文档里能找到的,但是比文档有条理的多,值得推荐。对于想接触egret开发,或者h5小游戏开发的人来说,是不错的入门书籍。
学习egret的基础知识,虽然都是文档里能找到的,但是比文档有条理的多,值得推荐。对于想接触egret开发,或者h5小游戏开发的人来说,是不错的入门书籍。