(一)Egret Engine多版本系统
(二)Egret Wing 强大的IDE工具
(三)ResDepot 资源管理工具
(四)Texture Merger:资源打包工具
1. 精灵表输出
Texture Merger可将零散的小图合并为大图文理集,提高资源加载速度和游戏性能,在游戏研发过程中,开发者可使用小图开发,在产品发布时对资源进行合并,无须修改代码
2. MovieClip动画旋转
Twxture Merger可方便地将GIF或SWF动画转换为Egret支持的动画格式
3. 位图字体
为高品质游戏的个性文字效果输出提供了方便快捷的解决方案
1.Main.ts为项目入口类,也成为文档类,文档类时衔接项目运行容器环境与项目中所有类的重要文件,
2. oadingUI.ts是加载过程中的辅助显示组件,用来显示加载进度
项目配置文件
1. 模块配置modules
模块配置中,列出项目所需的各个模块,默认新建项目会包含core模块和res模块。core模块是一个核心模块,通常使用Egret开发项目,这是必选项,因为引擎中提供的大部分基础类库都处于这个模块,res模块也是相当常用的模块,只要涉及资源文件加载,就需要用到这个模块,
① ore模块是一个核心模块,通常使用Egret开发项目,这是必选项,因为引擎中提供的大部分基础类库都处于这个模块,
② res模块也是相当常用的模块,只要涉及资源文件加载,就需要用到这个模块,
2. 原生打包设定native
该选项中的设置适用于原生打包
3. 版本号egrety_version
该选项指示项目最后打包时所使用的Egret引擎版本,如果该版本号与所安装的Egret引擎不一致,通常需要升级到所需安装版本财可以正常编译
4. 项目运行容器环境
项目运行环境为launcher目录,项目运行环境总体上分为两种,即HTML5环境和Runtime/Native环境,接下来对这种环境分别进行说明
① HTML5环境由于标准Egret项目(相对于Runtime/Native来说)依赖于HTML5环境,运行需要从某个静态HTML5页面开启,这个目录存有两个HTML5页面,index.html和release.html,分别用于调试和发布环境的启动页面。另外HTML5环境运行需要两个js文件配合:egret_require.js和egret_loader.js在egret.loader.js中可以对项目运行进行一些定制配置
② Runtime/Native环境
Runtime/Native环境由于已经脱离原本的HTML5环境,因此不需要任何HTML5页面,因为这个环境也没有任何HTML解析器,这个环境只需要3个js文件,native_loader.js,native_require.js和runtime_loader.js、其中在native_loader.js和runtime_loader.js中可以分别对原生打包和Runtime打包项目进行某些配置
5. 项目运行库libs
libs目录中包含项目各模块所对的所有类库:
a. egret
b. eui
c. res
d. tween
e. exml.e.ts
当对项目配置文件egretProperties.json中的模块进行修改后,需要通过编译引擎命令来重新生成项目运行库,这个命令可以从Project菜单找到(Project ——》Build Engine)
6. 项目编译目录bin-debug
项目编译的结果文件都会被存储到bin-debug目录中,这也是调试运行过程将会调用到的文件。其中源代码目录中的文件将会被编译到bin-debug/src目录中,在bin-debug/lib有个列表文件,用来列出所需要的所有运行库文件,在运行过程中,这些都会将在合适的时间被调用到
7. 项目资源目录resource
resource是用来存放项目运行所需要的所有资源的,包含图片和配置文件,通常在资源目录建立一个资源清单文件,默认为:resource.json.图片或声音等资源文件的默认存储目录为:resource/assets。配置数据文件的默认存储目录为:recource/config。当然这些目录都可以根据自己喜好设置,只要在程序中使用保持一致即可
assets
config
eui_skins
default.res.json
default.thm.json
8. 项目发布目录
1.Egret采用的是TypeScript作为开发语言,是一种标准的OOP语言
2. 对于大项目,建议将类分包建立
3. 类名大写,包名小写例如:egret.Bitmap
4. Egret类中的常量,通常采用全部字母大写,单词之间用下划线隔开的风格,如触摸事件egret.TouchEvent.TOUCH_BEGIN
注意:Egret引擎源代码中定义,类中的属性与方法如果以下划线开头,则表明此方法或属性为引擎内部使用,在编写游戏时,千万不要调用此类方法或属性,否则会引发不可预测的bug
建议风格。例如:有一个项目benchmark项目,我们要在benchmark.boid包内创建一个名为Boid的类,
5. 类与方法的命名规范
1) 类名
类名建议用大写字母开头,后每个单词也都以大写字母开头,其他字母小写,如一个控制翻页的类,命名为PageSlipCenter,其定义即为:
class PageSlipCenter extends egret.EventDispatcher{}
2) 方法名
方法名建议第一个单词用小写字母开头,后续每个单词都以大写字母开头,其他字母小写,如有一个触摸事件处理方法,命名为touchHandler,其定义为:private touchHandler(evt:egret.TouchEvent):void{}
1. egret模块是最为核心的模块,所有的Egret项目都应该包含这个模块,否则所有的基础功能都无法实现,
2. dragonbones
3. eui
4. game
5. gui
6. res模块是一个重要的模块,涉及资源载入的工作,都需要这个模块来完成,
7. socket
8. tween
如果需要添加或者删除直接在egretProperties.json中添加或者删除即可
1.准备第三方模块
第三方模块可以使用现成的js库也可以自己写js库
由于ts与js在语法结构上的差异,在ts中不能直接调用js库中的API,不过TypeScript团队提供了一套虚构声明语法,可以把现有的代码API用头文件的形式描述出来,这种文件称为ts类型定义,扩展名为d.ts(d.ts命名提醒编译器这种文件不需要编译),这套虚构定义语法不需要去实现函数体力的代码,类似定义interface和抽象类,
2. 部署第三方模块
第三方库重要规则:创建位置处于其他Egret项目外部,否则无法运行
egret create_lib<库名称>
注意:库名称应该是英文字符串,执行该命令将会创建以库名称为名的目录,目录内将包含bin、src、libs这3个字目录,还有一个package。json配置文件,再次强调一遍:不要在其他Egret项目内创建库,通常的做法是你有个放不同Egret项目的工作空间目录,然后第三方模块的库项目与其他Egret项目均处于该工作空间目录,处于并列位置
1、将第三方模块的js和对应的d.ts文件复制到刚刚创建的Egret库项目的src文件夹中。
2、如果该库项目src中的文件需要引用其他的库的代码,--通常称为依赖库,请把这些依赖库的TypeScript描述文件(也就是,,d,ts文件) 放到libs目录下,注意在libs目录下其他类型的文件入.js和*.ts一概不需要
3、编辑Egret库项目中的配置文件package.json,将之前放入src目录下的文件名称依次作为file_list数组中的元素列出,
3.在Egret项目中导入第三方模块
在Egret项目的egretProperties.json文件中,添加一下代码:
moddules:
[
{
"name":"physics", //模块名称
"path":"path/to/egret/library/project/root/", //路径
}
]
编译某第三方库后,在index。html文件中应该以模块名称physics.js的script外部脚本引用行