egret-docs-master/Engine2D/update/update314/README.md

118 lines
6.4 KiB
Markdown
Raw Normal View History

2024-06-19 13:32:32 +08:00
## Egret Engine 2D
[win下载地址](http://www.egret.com/api/download/index?app=EgretEngine&v=3.1.4&f=edn&ext=exe)
[mac下载地址](http://www.egret.com/api/download/index?app=EgretEngine&v=3.1.4&f=edn&ext=dmg)
#### WebGL 模式增加发光和投影滤镜
WebGL在本版中新增两种滤镜对应的类分别是
* 发光滤镜 `egret.GlowFilter`
* 阴影滤镜 `egret.DropShadowFilter`
如有一张白鹭小鸟的位图,则后边两张依次为应用某种配置的发光和阴影滤镜后的渲染效果:
![egret-bird-filter-no][] ![egret-bird-filter-glow][] ![egret-bird-filter-shadow][]
具体的用法参看EDN中的API文档。
#### EUI大幅提升EXML解析速度
将运行时解析exml修改为编译时解析,提速90%以上。
【准备工作】
将游戏项目提升至v3.1.4版本以上并执行egret build -e(确保使用了最新的引擎版本)
【使用方法】
全局安装euibooster命令行工具
```npm install -g cli-eui-new```
1.加速一个游戏项目:
```euibooster <egretProjectDir> <egretPublishDir>```
2.从加速项目恢复成普通项目:
```euibooster clean <egretProjectDir> <egretPublishDir>```
>注意: `<egretProjectDir>` 游戏目录,是必要参数,应使用绝对路径。
`<egretPublishDir>` 游戏的发布目录,必要参数,应使用绝对路径或相对于`egretProjectDir`的相对路径。
###### 示例
```euibooster /Users/Sites/Temp/test /Users/Sites/Temp/test/bin-release/web/160819180129```
![image](57b6df305dc85.png)
#### BitmapText 支持 xadvance
该特性是控制位图字体的字符间偏移的。
精确些讲,这个属性是绘制完一个字符之后,光标移动多少距离绘制下一个。引擎默认是移动绘制字符的纹理宽度+字符间距如果在fnt中加入这个属性就会覆盖引擎默认值。
具体用法,是加载包含 xadvance 属性的fnt文件。或者可以在现有的fnt文件中对需要设定的字符加入该属性并赋予所需的数值。
fnt有两种规范一种是纯文本的一种是JSON这里以 Egret 配套工具 TextureMerger 所使用的JSON为例来说明如何配置该属性TextureMerger 生成的某个字符的属性集合可能如下:
`"o":{"x":91,"y":1,"w":24,"h":26,"offX":2,"offY":10,"sourceW":26,"sourceH":36},`
此时,得到的某行位图文本文字可能是:
![fnt-xadv-orig][]
修改 fnt文件加入 `xadvance` 属性:
```"o":{"x":91,"y":1,"w":24,"h":26,"offX":2,"offY":10,"sourceW":26,"sourceH":36, "xadvance":36},```
此时,得到的该行位图文本文字将成为:
![fnt-xadv-adjust][]
#### 新增在入口文件可以指定使用的音频类型
现在,创建新的 Egret 项目后,将会在入口文件 `index.html` 底部发现入口代码:
```egret.runEgret({renderMode:"webgl", audioType:0});```
`audioType`参数可以使用如下数字取值对应含义说明与后0:默认1:qq audio2:web audio3:audio。
这几种音频的具体说明见 [音频系统之播放类型](../../multimedia/audio/README.md)
#### 其他更新
* 小幅提升webgl渲染性能
* 提升关闭脏矩形渲染性能
#### bug修复
* 修复 eui.Label 宽度测量错误的bug
* 修复使用 eui.DataGroup.getVirtualElementAt 造成列表异常的bug
* 修复 eui.List在删除内容后高度过小无法滚动的bug
* 修复 eui.Scroller 特定条件下滚动异常的bug
## DragonBones
DragonBones 4.7的运行库,相对之前的版本有较大的功能增加和改进,同时保证完美的向下兼容。
<!-- 全新的 TypeScript / JavaScript、ActionScript、C++ 的运行库支持,支持 DragonBones 4.5数据格式的全部功能。-->
[DragonBonesGithub ](https://github.com/DragonBones)
[DragonBones 4.7 Data Format](https://github.com/DragonBones/DragonBonesJS/blob/master/docs/DragonBones_4.7_release_notes_zh.md)
#### 增强了局部换装功能,解决轴点错位问题,支持一键整体换装,支持纹理延迟加载。
* 增加 Factory.replaceSlotDisplay(), Factory.replaceSlotDisplayList() API 用于解决局部换种轴点错位的问题。
* 增加 Armature.replaceTexture() API用于实现替换整个骨架的贴图。
* 增加骨架脱离贴图运行机制,可以实现贴图延时加载,动画边运行,贴图边加载。
* 具体的使用文档可以参见[APISpec](http://developer.egret.com/cn/apidoc/)和[DragonBones局部换装与全局换装](http://developer.egret.com/cn/github/egret-docs/DB/dbLibs/replaceTexture/index.html)
#### 规范骨架显示对象的类型,构造简单的骨骼动画更方便
* 增加 IArmatureDisplay 接口, 规范Armatrue的display显示对象的类型。
* 增加 Factory.buildArmatureDisplay()方法用于直接构建骨架的显示对象。使用该方法构建的骨骼动画能够自动运行不需要再手动添加到WorkClock中。这样往场景中添加不需要独立控制的骨骼动画使用该接口会非常方便。只需一行就能实现。
stage.addChild(Factory.buildArmatureDisplay())。
#### 重构Animation的gotoAndPlay接口拆分动画的播放和混合功能增加动画播放的API支持更多控制播放的参数。
* 以前的gotoAndPlay承载了动画的播放和融合两类功能参数列表庞大使用起来不方便容易出错。这个版本将这两类功能拆分gotoAndPlay只负责动画的播放fadeIn负责动画的融合。
* 增加动画播放的API支持通过时间、帧和进度三个维度控制动画播放开始和播放停止的位置。
Armature.animation.gotoAndPlayByTime()
Armature.animation.gotoAndPlayByFrame()
Armature.animation.gotoAndPlayByProgress()
Armature.animation.gotoAndStopByTime()
Armature.animation.gotoAndStopByFrame()
Armature.animation.gotoAndPlayByTime()
* API维持完美向下兼容gotoAndPlay和gotoAndStop功能仍然不变但是改为不建议使用的状态。
* 增加fadeIn方法用与实现多个动画同时播放的动画混合效果。
[egret-bird-filter-glow]: 578349b5b7f94.png
[egret-bird-filter-no]: 578349b5eb53c.png
[egret-bird-filter-shadow]: 578349b5ccdbc.png
[fnt-xadv-orig]: 578349b5d5c2d.jpg
[fnt-xadv-adjust]: 578349b5a4f83.jpg
[3d-waterWave]: 578349b594649.jpg
<!--Engine2D/releaseNote/egret-3-1-4/-->