《HTML5游戏开发》系列文章的目的有:一、以最小的成本去入门egret小项目开发,官方的教程一直都是面向中重型;二、egret可以非常轻量;三、egret相比PIXI.js和spritejs文档更成熟、友好;四、学习从0打造高效的开发工作流。
- HTML5游戏开发(一):3分钟创建一个hello world
- HTML5游戏开发(二):使用TypeScript编写代码
- HTML5游戏开发(三):使用webpack构建TypeScript应用
- HTML5游戏开发(四):飞机大战之显示场景和元素
- HTML5游戏开发(五):飞机大战之让所有元素动起来
本文的目的很简单,就是让开发者自己能够避免繁杂的项目配置,极速地创建和跑起一个egret实例,提升对egret开发的兴趣。官方那一坨对初学者太重了。
完整的源码请见:github.com/wildfirecod…
在线访问地址:wildfirecode.com/egret-hello…
创建入口index.html
在根目录创建index.html
文件,这是本地项目访问入口。
在body
标签内创建class属性值为egret-player
的div标签,这是画布canvas
的容器。在标签上添加data-entry-class
属性,并把它的值设为Main
,来指定程序的入口。详细如下:
<div style="margin: auto;width: 100%;height: 100%;"
class="egret-player"
data-entry-class="Main">
</div>
然后,在index.html
使用CDN的方式引入Egret的代码库文件egret.min.js以及egret.web.min.js。
<script src="https://yun.duiba.com.cn/db_games/egret_5.2.9/egret.min.js"></script>
<script src="https://yun.duiba.com.cn/db_games/egret_5.2.9/egret.web.min.js"></script>
之后,我们再把用户代码文件main.js
引入进来。
<script src="main.js"></script>
编写代码
在根目录创建main.js
用户代码文件,并在其中创建一个名为Main
的class,之后把这个class暴露到window
全局对象中。
在onAddToStage
方法中,我们创建了一个红色的文本框,文本内容为hello world
。
class Main extends egret.DisplayObjectContainer {
constructor() {
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
}
onAddToStage(event) {
let textfield = new egret.TextField();
this.addChild(textfield);
textfield.textColor = 0xff0000;
textfield.text = 'hello world';
}
}
window['Main']=Main;
这里说明一下几个问题:
egret
是引擎的全局命名空间。Main
类必须要继承egret.DisplayObjectContainer
这个基类。引擎约定入口类必须是一个可显示的容器对象
,容器对象中可以填充其他的可显示的对象
。egret.TextField
是引擎中用来显示文本的一个类,它的实例就是一个可显示的对象
,我们用egret.DisplayObjectContainer
类的addChild
方法来把创建的文本框添加到显示容器
中去。
最后我们把下面的代码放入main.js
尾部来启动引擎。
egret.runEgret();
运行代码
我们用chrome来运行index.html
便可以看到在画布上出现了红色的hello world
字样。运行结果如下图。