淺談白鷺Egret

淺談白鷺Egret

 
          最近在作一個移動項目,技術選型的時候接觸到了白鷺,簡單瞭解了以後以爲挺合適的,最終就選擇了這個引擎。
爲何會選擇白鷺引擎呢? 我看上他主要有一下幾點:
 
一、egret的類結構以及繼承關係跟as3的如出一轍,很容易上手。
二、egret儘可能保持每一個類的屬性方法跟as3的同樣,這樣子的話as3裏的寫法在egret裏面一樣使用。
三、egret已經有一套完整的工具,能夠方便的開發html5應用,也能夠方便的發佈手機原生應用。
四、白鷺公司的積極努力,使得每隔一小段時間都會有新版本出現。並且版本之間兼容性十分良好,還提供了一鍵升級。
五、若是你是as3開發者,看到egret你會心動,若是你是flex開發者,看到egret你會以爲看到了轉行移動的但願。
 
因此,做爲一個曾經的as3開發者,用egret來開發移動端是再合適不過了。
egret同時支持用TypeScript和JavaScript開發,做爲更喜歡面向對象的咱們天然就選擇TypeScript了。
 
egret裏面目前有下面這麼多庫:
egret core 是核心庫用於顯示圖片、文字、濾鏡、事件、播放聲音等。
egret 3d 是他的3d引擎,若是是3d項目就要用到這個庫了。
game 比較簡單隻有幾個類MovieClip、ScrollView、URLLoader、URLRequest等。
eui 是一套界面庫,用於設計界面。至關與flex了。拖拖擺擺就能夠成界面了,很是方便。
socket 就是WebSocket庫,長鏈接網絡通訊要用到的,遊戲開發必備。
tween 是他的緩動庫,不過我通常是用TweenLite、TweenMax的js版。用起來方便,跟在flash裏面同樣。
res 加載管理資源的,能夠加載合圖和單張小圖。
dragonBones 骨骼動畫
gui 我沒有用到,聽說是過期了的eui,如今已經用eui代替gui了。
tiledmap 解析tiled地圖用的。
other 裏面沒什麼,存了幾個數學常量和幾個類型定義。
 
詳細的開發文檔,官網已經介紹了,很詳細,能夠參考 http://edn.egret.com/cn/docs/
這裏主要講下寫項目的過程。
 
首先,你要下載Egret Engine
安裝完成後,打開EgretEngine,在裏面下載用到的幾個工具 Egret Wing 三、Texture Merger、Egret IOS Support、Egret Android Support等。
 
而後,打開Egret Wing 3
新建一個Egret EUI 項目
按F5能夠啓動項目。
 
寫項目最重要的是要創建好代碼結構,組織好項目代碼。
我在src文件夾下面創建了以下幾個文件夾
views 是放界面的。全部的ui都在這裏,
         commons,是通用的組建,例如Alert,本身寫的列表等。
         games,是遊戲場景裏的ui
         halls,是大廳裏的ui
         popups,是彈出窗口
         renderers,是列表中用到的renderer
 
utils 是放工具類,好比對ui操做的UIUtil、對string操做的StringUtil 等等。
servers 是遊戲中用到的幾個服務了。本身封裝好http服務,tcp服務,放到這裏面,對外通訊經過發送事件便可。
scenes 遊戲中用到的幾個場景,好比負責加載的LoadingScene、大廳界面HallScene、遊戲界面GameScene、可能有不一樣的遊           戲界面可能夠寫成多個不通的GameScene。
models 遊戲中的數據庫。存放遊戲裏面的數據,包括servers裏面的幾個服務發送過來的數據,程序自己的數據,以及對數據的           簡單邏輯處理。程序中用到的數據都要經過它來訪問。
managers 顧名思義,管理器存放的地方,好比切換Scene用到的SceneManager,管理彈出窗口的PopupManager,本身封裝的便於使用的EventManager、對聲音操做的SoundManager、以及可能到本地化的LocalizeManager等。
events 自定義事件,將自定義Event放到這裏方便管理。
controllers 控制器,是ui和數據的結合點,邏輯處理的地方。主要是和scenes對應,一個Scene能夠對應多個controller,controller的做用是對Scene的功能進行分類,使得邏輯更加清晰。Scene有不一樣的功能,能夠分別建不一樣的controller。
 
寫代碼都是要放到src裏面,這點跟flashbuilder同樣。
編譯的時候egret會把咱們寫的每個代碼文件,分別編譯成對應的js文件和js.map文件(map文件是加斷點調試用的),而後放在 index.html的<!--game_files_start--><!--game_files_end-->中間
 
在index.html裏面,egret會先加載egret本身的類庫,而後加載咱們自定義的庫,以後加載咱們寫的代碼,最後啓動引擎
egret.runEgret({renderMode:"webgl", audioType:0});
egret將代碼都加載到同一個環境裏。這就是爲何咱們寫代碼的時候不用像as3那樣須要經過import將代碼引入了。這也是它比較方便的地方,你在這個文件裏寫的代碼,在另一個文件裏能夠直接訪問。
 
和src並列的還有一個resource文件夾
這個文件夾是存放程序裏用到的資源用的,包括並不限於圖片,音樂,文本文件等。
resource裏面最重要的是default.res.json文件,RES.getRes用到的key來自這個文件。
resource裏面的default.thm.json文件是存放exml文件的,這個文件egret會自動修改,不須要咱們手動修改。
 
程序的入口是Main.ts文件,這個能夠修改,不過通常不用修改,默認就能夠了。
相關文章
相關標籤/搜索