白鷺引擎—— 學習筆記
- 2019 年 12 月 12 日
- 筆記
最近打算重新嘗試下獨立遊戲的開發,多說無益,先從egret開始。
Egret 項目結構
遊戲開發,最主要兩個部分內容,一個是資源,一個是腳本。
先說資源。

resource
目錄下,assets
與eui_skins
中的exml
文件一一對應,並通過default.res.json
文件來進行管理和申明。
自己添加的資源,同樣也是添加到這個目錄中,並申明
再看腳本,腳本都存放在src
目錄下,main.ts
則是腳本的入口文件,也是整個遊戲的主要控制入口。

主要看兩個方法
loadResource()
載入資源createGameScene()
載入場景
具體程式碼實現,則是使用TS腳本,調用Egret引擎的能力,來繪製場景和介面,並載入腳本程式碼。這裡可以直接將簡單的邏輯腳本寫入main.ts
亦可編寫單獨的TS腳本在main中調用。
Egret常用API
文本
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();