楠槡

白鹭引擎—— 学习笔记

2019-08-25

最近打算重新尝试下独立游戏的开发,多说无益,先从egret开始。

Egret 项目结构

游戏开发,最主要两个部分内容,一个是资源,一个是脚本。

先说资源。

skin

resource目录下,assetseui_skins中的exml文件一一对应,并通过default.res.json文件来进行管理和申明。

自己添加的资源,同样也是添加到这个目录中,并申明

再看脚本,脚本都存放在src目录下,main.ts则是脚本的入口文件,也是整个游戏的主要控制入口。

main

主要看两个方法

  • loadResource()加载资源
  • createGameScene()加载场景

具体代码实现,则是使用TS脚本,调用Egret引擎的能力,来绘制场景和界面,并加载脚本代码。这里可以直接将简单的逻辑脚本写入main.ts亦可编写单独的TS脚本在main中调用。

Egret常用API

文本

1
2
let label:egret.TextField = new egret.TextField();
label.text = "hello world!";

图片

1
2
let img:egret.Bitmap = new egret.Bitmap();
img.texture = RES.getRes("imgName");

形状

1
2
3
4
5
// 画个红色矩形框
let shp:egret.Shape = new egret.Shape();
shp.graphics.beginFill( 0xff0000, 1);
shp.graphics.drawRect( 0, 0, 100, 200 );
shp.graphics.endFill();

声音

1
2
3
let sound:egret.Sound = RES.getRes("mp3Name");
sound.play();
sound.stop();

事件

1
2
3
// 触摸事件(相当于点击)
this.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTouchTap,this);
this.removeEventListener(egret.TouchEvent.TOUCH_TAP,this.onTouchTap,this);

计时器

1
2
3
4
5
6
7
8
9
10
11
12
// 参数为时间间隔(ms)和执行次数
let timer:egret.Timer = new egret.Timer(500, 5);
// 边计时边触发
timer.addEventListener(egret.TimerEvent.TIMER, this.timerFunc, this);
// 计时结束触发
timer.addEventListener(egret.TimerEvent.TIMER_COMPLETE,this.timerComFun,this);
// 开始计时
timer.start();
// 暂停计时
timer.stop();
// 重新计时
timer.reset();

数据存储

1
2
3
4
5
6
7
8
9
10
// 存储数据
let key:string = "score";
let value:string = "100";
egret.localStorage.setItem(key, value);
// 读取数据
let score:string = egret.localStorage.getItem(key);
// 移除数据
egret.localStorage.removeItem(key);
// 清除所有数据
egret.localStorage.clear();
Tags: egret
使用支付宝打赏
使用微信打赏

若你觉得我的文章对您有帮助,点击上方按钮请我喝杯咖啡☕

若文章中存在问题,或您有任何意见和疑问,均可与我联系

扫描二维码,分享此文章 📱