最近打算重新尝试下独立游戏的开发,多说无益,先从egret开始。
游戏开发,最主要两个部分内容,一个是资源,一个是脚本。
先说资源。
resource
目录下,assets
与eui_skins
中的exml
文件一一对应,并通过default.res.json
文件来进行管理和申明。
自己添加的资源,同样也是添加到这个目录中,并申明
再看脚本,脚本都存放在src
目录下,main.ts
则是脚本的入口文件,也是整个游戏的主要控制入口。
主要看两个方法
loadResource()
加载资源createGameScene()
加载场景具体代码实现,则是使用TS脚本,调用Egret引擎的能力,来绘制场景和界面,并加载脚本代码。这里可以直接将简单的逻辑脚本写入main.ts
亦可编写单独的TS脚本在main中调用。
let label:egret.TextField = new egret.TextField();
label.text = "hello world!";
let img:egret.Bitmap = new egret.Bitmap();
img.texture = RES.getRes("imgName");
// 画个红色矩形框
let shp:egret.Shape = new egret.Shape();
shp.graphics.beginFill( 0xff0000, 1);
shp.graphics.drawRect( 0, 0, 100, 200 );
shp.graphics.endFill();
let sound:egret.Sound = RES.getRes("mp3Name");
sound.play();
sound.stop();
// 触摸事件(相当于点击)
this.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTouchTap,this);
this.removeEventListener(egret.TouchEvent.TOUCH_TAP,this.onTouchTap,this);
// 参数为时间间隔(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();
// 存储数据
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();