1. 程式人生 > >遊戲引擎 白鷺(egret)學習總結(一)

遊戲引擎 白鷺(egret)學習總結(一)

今天瞭解並學習了下這個遊戲引擎(egret),個人覺得這是個不錯的遊戲引擎,對於以後遊戲的開發有非常大的幫助,以下是自己的學習心得總結,有興趣的同學可以去官網瞭解 http://www.egret.com/

好了 不廢話了 這是我一天下來的成果,希望對你有所幫助,堅持每天更新 。。。

一:基本介紹



1:下載安裝


2:指定目錄下建立專案根目錄:
1:cmd命令 egret create Helloworld(專案名稱),建立成功後即可在相應目錄檢視到建立的目標資料夾


3:編譯egret改動後均要重新build:
進入您的專案目錄,執行 egret build, Egret 會編譯您的 TypeScript 程式碼到 bin-debug 目錄,拷貝 src 和 template 中的其他檔案到 bin-debug 中。(如果希望升級該專案請使用egret upgrade。)
注:egret版本更新後,進入您的專案目錄,執行 egret upgrade來升級專案程式碼。在 Egret 2.5 之前的版本下升級完成之後需要執行egret build -e 來重新編譯一下引擎。


4:升級專案:
進入您的專案目錄,執行 egret upgrade來升級專案程式碼。在 Egret 2.5 之前的版本下升級完成之後需要執行egret build -e 來重新編譯一下引擎。


5:開啟瀏覽器:
進入您的專案目錄,執行 egret startserver, Egret 會啟動內建的 HTTP Server 並開啟瀏覽器。 -a 啟動自動編譯    -port [port number] 指定啟動 Server 的埠


6:釋出專案:
進入您的專案目錄,執行 egret publish, Egret 會合並編譯您的 TypeScript 程式碼,壓縮之後拷貝到 bin-release 目錄,拷貝 src 和 template 中的其他檔案到 bin-release 中。替換模板中的第三方庫 Script 為 


release 版本。(--runtime 設定釋出方式為 html5 或者是 native方式,預設值為html5。--version 設定釋出之後的版本號,可以不設定。--password設定釋出zip檔案的解壓密碼。)
例如:egret publish Helloworld  --runtime native


7:清理專案:
在根目錄下執行 egret clean demo(注意:clean 命令只會用 Egret 根目錄中 build 資料夾下的檔案,覆蓋 libs 目錄中的同名檔案,其他第三方庫不會被刪除,當然也有可能 Egret 本身的擴充套件庫在新版本中被刪除,


這種情況請手動刪除舊版本的擴充套件庫。)


8:執行輸出路徑:  執行 egret info, Egret 會輸出 Egret 安裝目錄和版本資訊。








二:程式碼部分
1:graphic屬性
Shape物件中有graphic屬性,用來專門負責圖形繪製的工作。
2:用beginFill來設定填充顏色。
3:用drawRect來繪製矩形   類似的繪製函式還有drawCircle等,可以繪製不同的簡單形狀
4:endFill用來結束繪製工作。
5:addChild() 這是Egret引擎操作顯示列表的一個最常用的方法,就是將某個顯示物件新增到某個顯示容器上。
6:html中的部分屬性:data-entry-class="Main"<!--Main.ts 中的類-->      data-scale-mode="noBorder(佔滿螢幕)  or  showAll(不進行縮放)"<!--螢幕適配-->
7:touchEnabled 方法: 意即允許該顯示物件響應Touch事件,這是Egret中特別需要注意的問題。因為所有的顯示物件,預設都是不響應Touch事件的
8:addEventListener 新增一個方法的引用,這就是事件處理函式,我們需要事件處理函式中對使用者操作做出對應的反應 
例:tx.addEventListener( egret.TouchEvent.TOUCH_TAP, this.touchHandler, this );//事件
private touchHandler( evt:egret.TouchEvent ):void{//方法
    var tx:egret.TextField = evt.currentTarget;
    tx.textColor = 0x00ff00; 
}
另一種簡潔的寫法直接作為匿名函式傳入:
tx.addEventListener( egret.TouchEvent.TOUCH_TAP, function( evt:egret.TouchEvent ):void{    
       tx.textColor = 0x00ff00; 
   }, this );