白鷺引擎—— 學習筆記

  • 2019 年 12 月 12 日
  • 筆記

最近打算重新嘗試下獨立遊戲的開發,多說無益,先從egret開始。

Egret 項目結構

遊戲開發,最主要兩個部分內容,一個是資源,一個是腳本。

先說資源。

resource目錄下,assetseui_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();