egret白鹭引擎基础介绍

来源:互联网 发布:拉杆箱品牌知乎 编辑:程序博客网 时间:2024/04/28 19:55

软件介绍

(一)Egret Engine多版本系统

(二)Egret Wing 强大的IDE工具

(三)ResDepot 资源管理工具

(四)Texture Merger:资源打包工具

1. 精灵表输出

Texture Merger可将零散的小图合并为大图文理集,提高资源加载速度和游戏性能,在游戏研发过程中,开发者可使用小图开发,在产品发布时对资源进行合并,无须修改代码

2. MovieClip动画旋转

Twxture Merger可方便地将GIFSWF动画转换为Egret支持的动画格式

3. 位图字体

为高品质游戏的个性文字效果输出提供了方便快捷的解决方案

案例:Hello World绘制一个圆

项目代码目录

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.htmlrelease.html,分别用于调试和发布环境的启动页面。另外HTML5环境运行需要两个js文件配合:egret_require.jsegret_loader.jsegret.loader.js中可以对项目运行进行一些定制配置

② Runtime/Native环境

Runtime/Native环境由于已经脱离原本的HTML5环境,因此不需要任何HTML5页面,因为这个环境也没有任何HTML解析器,这个环境只需要3js文件,native_loader.jsnative_require.jsruntime_loader.js、其中在native_loader.jsruntime_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

由于tsjs在语法结构上的差异,在ts中不能直接调用js库中的API,不过TypeScript团队提供了一套虚构声明语法,可以把现有的代码API用头文件的形式描述出来,这种文件称为ts类型定义,扩展名为d.ts(d.ts命名提醒编译器这种文件不需要编译),这套虚构定义语法不需要去实现函数体力的代码,类似定义interface和抽象类,

2. 部署第三方模块

第三方库重要规则:创建位置处于其他Egret项目外部,否则无法运行

egret create_lib<库名称>

注意:库名称应该是英文字符串,执行该命令将会创建以库名称为名的目录,目录内将包含binsrclibs3个字目录,还有一个packagejson配置文件,再次强调一遍:不要在其他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/",  //路径

}

]

编译某第三方库后,在indexhtml文件中应该以模块名称physics.jsscript外部脚本引用行

 


阅读全文
1 0
原创粉丝点击