白鹭引擎开发H5游戏(项目结构)

孙广东   2016.12.8

http://blog.csdn.net/u010019717

主要使用 EgretWing  (是白鹭扩展的 VisualStudio Code)

新建 项目中  选择

生成的项目的结构:

  src


是TypeScript源码目录


  resource


是我们项目中的资源路径,一般我们把图片音频等素材放置asset目录下,json等配置文件放置config目录下,default.res.json是我们用于加载资源的json配置文件,一般不修改名字,后面会讲到怎么使用。


egretProperties


是我们这个项目的一些配置记录信息,一般我们不需要动它。而index.html就是我们游戏的主界面文件。


index.html


我们可以看到游戏界面所需的js,都自动生成并引用好了。这一部分我们不需要也不能手动去修改。


bin-debug


是调试环境编译出来的js


libs


是文件包的引用目录


template


主要是app用到的runtime

  但是你可以在style标签中修改背景色或者在div属性值中修改配置参数,如渲染的帧率(一般我们设成60,如果是计算量大的,我们再适当降低),在这里我们可以重新修改刚刚新建游戏时的适配模式、宽高、旋转等;

  将data-show-fps和data-show-log设成true,我们就可以看到游戏运行的实时帧率了。

  帧率可以检测游戏运行的流畅度(性能),渲染数量越多,同时计算量越大,性能就越差,掉帧就越多。所以帧率越高,则表示性能越好,流畅度高。

egret.runEgret({})的运行方法,在这里,你可以修改egret的渲染模式,默认是"webgl"。但是如果你需要用到跨域图片资源或者有大量的图片和文字,你最好还是使用"canvas"模式,避免跨域报错和性能问题。

主要 熟悉 visualstudio code 就可以很容易上手。   点击  调试 菜单 按键或者 F5  就可以运行了。           运行窗口中 也有 切花分辨率  和 横竖屏切换等!

1、首先要知道入口类:

在index.html页面中声明了入口类(data-entry-class),所以当页面加载完之后,就会自动执行Main类中的构造函数。

  并且在这个类构建完成后,会自动添加到舞台(stage)。

2、由于Main继承自白鹭的基本容器egret.DisplayObjectContainer并且会自动添加到舞台中,所以在初始化阶段给Main绑定了添加到舞台事件,用于启动界面。

public constructor() {

super();

this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage,this);

}

3、Main被添加到舞台,触发旗下的onAddToStage方法。

运行 开到的应该是两个界面 一个 Loading  和 Main , 只不过 Loading 太快了。

    private onAddToStage(event:egret.Event) {
        //设置加载进度界面
        //Config to load process interface
        this.loadingView = new LoadingUI();
        this.stage.addChild(this.loadingView);

4、 加载配置文件, 加载完成后,执行onConfigComplete方法

    移除CONFIG_COMPLETE配置完成事件,分别绑定资源组加载完成(GROUP_COMPLETE)执行的方法、

  资源组加载出错(GROUP_LOAD_ERROR)、资源文件加载进度(GROUP_PROGRESS)要执行的方法、资源项加载出错(ITEM_LOAD_ERROR)要执行的方法。接着正式开始执行RES.loadGroup()并加载资源组(默认preload)里面的资源。

    privateonConfigComplete(event:RES.ResourceEvent):void {
       RES.removeEventListener(RES.ResourceEvent.CONFIG_COMPLETE,this.onConfigComplete, this);
       RES.addEventListener(RES.ResourceEvent.GROUP_COMPLETE,this.onResourceLoadComplete, this);
       RES.addEventListener(RES.ResourceEvent.GROUP_LOAD_ERROR,this.onResourceLoadError, this);
       RES.addEventListener(RES.ResourceEvent.GROUP_PROGRESS,this.onResourceProgress, this);
       RES.addEventListener(RES.ResourceEvent.ITEM_LOAD_ERROR,this.onItemLoadError, this);
        RES.loadGroup("preload");
    }

5、正在加载资源,触发RES.ResourceEvent.GROUP_PROGRESS并执行onResourceProgress方法

    在这个过程中,会不断地调用LoadingUI中的公共方法setProgress(event.itemsLoaded,event.itemsTotal);

  GROUP_PROGRESS事件会返回当前已加载的数量event.itemsLoaded,以及加载资源的总数event.itemsTotal,我们可以利用这两个数值进行一些进度的显示。

6、资源组加载完成,触发RES.ResourceEvent.GROUP_COMPLETE并执行onResourceLoadComplete方法

    将loading页面移出舞台,移除之前绑定的一些加载事件,并且执行createGameScene()方法。

7、开始绘制游戏场景

createGameScene()   函数。

可视化编程

毕竟是国人的工具,  文档都是中文

http://edn.egret.com/cn/docs/page/1027

http://edn.egret.com/cn/docs/page/936

实战教程:(必看)

http://bbs.egret.com/thread-1878-1-1.html

创建项目选择  EUI 项目:

创建可视化   界面

Exml  被绑定到  Ts 文件中  使用。  (注意名字不要一样!)

本身就是XML

不足的地方有很多,  创建的时候 应该自动生成  *.Exml  和 *.ts 才好 ,并且绑定关系自动生成!。   还有  在界面上可以指定  事件才好, 或者双击的时候跳转到 *.ts 的事件处理位置上。

资源编辑器

来自 <http://developer.egret.com/cn/github/egret-docs/Wing/editor/resdepot/index.html>

将资源分组 , 设置九宫格 等

EXML可视化编辑器

来自 <http://developer.egret.com/cn/github/egret-docs/Wing/editor/exml/index.html>

时间: 2024-11-05 04:50:41

白鹭引擎开发H5游戏(项目结构)的相关文章

模仿开发H5游戏,看你有多色

开发记录 前言 之前跟着慕课网学习开发H5小游戏开心鱼,勾起我的兴趣. 在写代码的过程中,不怎么会遇到问题.虽然代码是亲手敲出来的,但是由于并没有对游戏的整体思路,所以并不知道开发与优化的过程. 为了巩固知识,和了解优化的过程.我用了半天时间写出<看你有多色>游戏,(在网上找了一张游戏截图,之后自己写) 由于是第一次自己构思.自己动手的游戏,所以还有很多地方有待完善. 基本界面的实现的过程 就像切图一样,在我找到截图的时候,先利用HTML搭出框架,再用CSS填充样式. 随后是加入JS去实现不同

用canvas开发H5游戏小记

自神经猫风波之后,微信中的各种小游戏如雨后春笋般目不暇接,这种低成本,高效传播的案例很是受开发者青睐.作为一名前端,随手写个这样的小游戏出来应该算是必备技能吧.恰逢中秋节,部门决定上线一个小游戏,在微信里传播一下与用户互动互动.这任务自然落在了我头上.前段时间用DOM+CSS3写了个小游戏,在Android机器上巨卡无比,有了上次的经验,这次决定用canvas来写.其实这些小游戏在业界也都是canvas来做,已经有很成熟的技术和框架,由于不会频繁修改DOM树,所有的动画都是在一块画布上完成,所以

小程序开发:三 项目结构

项目结构图: 2.目录结构请参考小程序官方文档. https://developers.weixin.qq.com/miniprogram/dev/framework/structure.html 原文地址:https://www.cnblogs.com/start2019/p/11854105.html

开发H5牛牛大厅游戏引擎的选择:Egret或Laya?

Q1446595067官网:h5.haozibbs.com一.H5游戏开发的引擎介绍 开发H5游戏的引擎有很多,比如egret.laya.cocos-js等等.这里主要是分析的是egret和laya,因为我们团队是从as3转过来的.所以天然地在有as3基因的egret和laya之中挑选一个. Egret Egret Framework是一款使用JavaScript(TypeScript)编写的HTML5开源免费游戏框架.核心定位是开放,高效,优雅.基于它,你可以快速轻松地构建属于自己的HTML5

应对iOS政策,白鹭引擎助力数十家团队过审 AppStore 经验分享

2019年苹果更新了对HTML5游戏的政策,要求HTML5游戏应在 Safari浏览器中展现,而不是直接打包为 ipa 发布到 AppStore 中,对此,很多 开发者给予关注,并跟我们咨询寻求帮助,解决他们在白鹭引擎开发的HTML5游戏发布到AppStore的问题. 在我们白鹭完整的开发工作流产品中,使用Egret Native就可以解决就可以解决这个问题. 在最近几个月的时间中,我们引擎团队帮助数十家开发商成功将其产品顺利通过 AppStore 新规审核,总结了一些实操经验,今天跟大家分享下

简单介绍了解白鹭引擎Egret

(一)关于白鹭引擎Egret Egret引擎是一个开源免费的游戏框架,用于构建二维游戏.演示程序和其他图形界面交互应用等.Egret使用TypeScript脚本语言开发.当游戏完成最终的打包后,可以将程序转换为HTML5游戏.实现跨平台特性. Egret不仅仅是一个基于HTML5技术的游戏引擎,我们的产品线中除了Egret引擎还提供了很多辅助游戏开发的工具.准确的来说,Egret是一套游戏开发的解决方案.你可以使用Egret引擎来帮助你开发HTML5游戏,并运行在手机和PC端的浏览器中,同时也你

H5游戏:碎片时间的生意经

在技术上逐步拉近和手机App游戏.PC端网页游戏.客户端游戏之间的距离,逐步发挥自己跨屏的优势,并让自身的内容不再受限于极简小游戏范畴,才可以逐步延长玩家的游戏时间和黏合度,自然收益模式也就慢慢和其他游戏类型趋同并稳定.在业内,对于H5游戏的未来,观点已经趋于一致. 文/张书乐 刊载于<互联网经济>杂志2014年11月刊,刊载时有删节 整个夏季,微信朋友圈被一只表情很欠.身材妖娆的猫无情"刷屏"了."我用了11步围住神经猫,击败89%的人,你能超过我吗?"

新建一个兼容eclipse和myeclipse、IDEA都兼容的项目结构

以下观点为个人理解,没实践过,后续再实现. 思路: 1.eclipse和myeclipse.IDEA这些开发工具新建的各自的项目时,都有自己的一套思路,项目结构都有各自的特点. 2.如果是这些开发工具互相导入项目时,要按照各自开发工具的项目结构的特定进行修改,花大量的无用功. 3.如果组内成员使用的开发工具各自不统一,也是一个问题,或者项目历史上带来的开发工具不统一,也是问题. 解决思路: 1.引入maven进行构建项目. maven有标准一套构建目录,通过其新建的项目,无论eclipse和my

浅析:Unity3D开发的游戏如何降低包体大小

众所周知,通过Unity3D开发的手游包体普遍偏大,动则几百M的安装包,而包体大则会导致手游推广的成本增大,也会影响到用户转化率.除去其他因素,用户在选择下载时,会着重关注游戏包体大小,游戏包体体积过大,下载时间长,会让用户取消下载,同时也会考虑到流量的问题. 因此Unity官方也介绍了几种降低包体大小的方法: 1.替换jpg,使用psd,减少重复资源 2.剔除不必要的资源 3.打包时查看log纪录,由此判断需要减少的文件类型 4.优化,压缩图片,减少图片大小 5.优化,压缩网格和动画,减少文件