egret需要什么基礎?
軟件介紹
(一)Egret Engine多版本系統(tǒng)
(二)Egret Wing 強大的IDE工具
(三)ResDepot 資源管理工具
(四)Texture Merger:資源打包工具
1. 精靈表輸出
Texture Merger可將零散的小圖合并為大圖文理集,提高資源加載速度和游戲性能,在游戲研發(fā)過程中,開發(fā)者可使用小圖開發(fā),在產品發(fā)布時對資源進行合并,無須修改代碼
2. MovieClip動畫旋轉
Twxture Merger可方便地將GIF或SWF動畫轉換為Egret支持的動畫格式
3. 位圖字體
為高品質游戲的個性文字效果輸出提供了方便快捷的解決方案
案例:Hello World繪制一個圓
項目代碼目錄
1.Main.ts為項目入口類,也成為文檔類,文檔類時銜接項目運行容器環(huán)境與項目中所有類的重要文件,
2. oadingUI.ts是加載過程中的輔助顯示組件,用來顯示加載進度
項目配置文件
1. 模塊配置modules
模塊配置中,列出項目所需的各個模塊,默認新建項目會包含core模塊和res模塊。core模塊是一個核心模塊,通常使用Egret開發(fā)項目,這是必選項,因為引擎中提供的大部分基礎類庫都處于這個模塊,res模塊也是相當常用的模塊,只要涉及資源文件加載,就需要用到這個模塊,
① ore模塊是一個核心模塊,通常使用Egret開發(fā)項目,這是必選項,因為引擎中提供的大部分基礎類庫都處于這個模塊,
② res模塊也是相當常用的模塊,只要涉及資源文件加載,就需要用到這個模塊,
2. 原生打包設定native
該選項中的設置適用于原生打包
3. 版本號egrety_version
該選項指示項目最后打包時所使用的Egret引擎版本,如果該版本號與所安裝的Egret引擎不一致,通常需要升級到所需安裝版本財可以正常編譯
4. 項目運行容器環(huán)境
項目運行環(huán)境為launcher目錄,項目運行環(huán)境總體上分為兩種,即HTML5環(huán)境和Runtime/Native環(huán)境,接下來對這種環(huán)境分別進行說明
① HTML5環(huán)境由于標準Egret項目(相對于Runtime/Native來說)依賴于HTML5環(huán)境,運行需要從某個靜態(tài)HTML5頁面開啟,這個目錄存有兩個HTML5頁面,index.html和release.html,分別用于調試和發(fā)布環(huán)境的啟動頁面。另外HTML5環(huán)境運行需要兩個js文件配合:egret_require.js和egret_loader.js在egret.loader.js中可以對項目運行進行一些定制配置
② Runtime/Native環(huán)境
Runtime/Native環(huán)境由于已經脫離原本的HTML5環(huán)境,因此不需要任何HTML5頁面,因為這個環(huán)境也沒有任何HTML解析器,這個環(huán)境只需要3個js文件,native_loader.js,native_require.js和runtime_loader.js、其中在native_loader.js和runtime_loader.js中可以分別對原生打包和Runtime打包項目進行某些配置
5. 項目運行庫libs
libs目錄中包含項目各模塊所對的所有類庫:
a. egret
b. eui
c. res
d. tween
e. exml.e.ts
當對項目配置文件egretProperties.json中的模塊進行修改后,需要通過編譯引擎命令來重新生成項目運行庫,這個命令可以從Project菜單找到(Project ——》Build Engine)
6. 項目編譯目錄bin-debug
項目編譯的結果文件都會被存儲到bin-debug目錄中,這也是調試運行過程將會調用到的文件。其中源代碼目錄中的文件將會被編譯到bin-debug/src目錄中,在bin-debug/lib有個列表文件,用來列出所需要的所有運行庫文件,在運行過程中,這些都會將在合適的時間被調用到
7. 項目資源目錄resource
resource是用來存放項目運行所需要的所有資源的,包含圖片和配置文件,通常在資源目錄建立一個資源清單文件,默認為:resource.json.圖片或聲音等資源文件的默認存儲目錄為:resource/assets。配置數(shù)據文件的默認存儲目錄為:recource/config。當然這些目錄都可以根據自己喜好設置,只要在程序中使用保持一致即可
assets
config
eui_skins
default.res.json
default.thm.json
8. 項目發(fā)布目錄
代碼風格
1.Egret采用的是TypeScript作為開發(fā)語言,是一種標準的OOP語言
2. 對于大項目,建議將類分包建立
3. 類名大寫,包名小寫例如:egret.Bitmap
4. Egret類中的常量,通常采用全部字母大寫,單詞之間用下劃線隔開的風格,如觸摸事件egret.TouchEvent.TOUCH_BEGIN
注意:Egret引擎源代碼中定義,類中的屬性與方法如果以下劃線開頭,則表明此方法或屬性為引擎內部使用,在編寫游戲時,千萬不要調用此類方法或屬性,否則會引發(fā)不可預測的bug
建議風格。例如:有一個項目benchmark項目,我們要在benchmark.boid包內創(chuàng)建一個名為Boid的類,
5. 類與方法的命名規(guī)范
1) 類名
類名建議用大寫字母開頭,后每個單詞也都以大寫字母開頭,其他字母小寫,如一個控制翻頁的類,命名為PageSlipCenter,其定義即為:
class PageSlipCenter extends egret.EventDispatcher{}
2) 方法名
方法名建議第一個單詞用小寫字母開頭,后續(xù)每個單詞都以大寫字母開頭,其他字母小寫,如有一個觸摸事件處理方法,命名為touchHandler,其定義為:private touchHandler(evt:egret.TouchEvent):void{}
核心庫與擴展庫的使用方法
1. egret模塊是最為核心的模塊,所有的Egret項目都應該包含這個模塊,否則所有的基礎功能都無法實現(xiàn),
2. dragonbones
3. eui
4. game
5. gui
6. res模塊是一個重要的模塊,涉及資源載入的工作,都需要這個模塊來完成,
7. socket
8. tween
如果需要添加或者刪除直接在egretProperties.json中添加或者刪除即可
第三方庫的集成方法
1.準備第三方模塊
第三方模塊可以使用現(xiàn)成的js庫也可以自己寫js庫
由于ts與js在語法結構上的差異,在ts中不能直接調用js庫中的API,不過TypeScript團隊提供了一套虛構聲明語法,可以把現(xiàn)有的代碼API用頭文件的形式描述出來,這種文件稱為ts類型定義,擴展名為d.ts(d.ts命名提醒編譯器這種文件不需要編譯),這套虛構定義語法不需要去實現(xiàn)函數(shù)體力的代碼,類似定義interface和抽象類,
2. 部署第三方模塊
第三方庫重要規(guī)則:創(chuàng)建位置處于其他Egret項目外部,否則無法運行
egret create_lib<庫名稱>
注意:庫名稱應該是英文字符串,執(zhí)行該命令將會創(chuàng)建以庫名稱為名的目錄,目錄內將包含bin、src、libs這3個字目錄,還有一個package。json配置文件,再次強調一遍:不要在其他Egret項目內創(chuàng)建庫,通常的做法是你有個放不同Egret項目的工作空間目錄,然后第三方模塊的庫項目與其他Egret項目均處于該工作空間目錄,處于并列位置
1、將第三方模塊的js和對應的d.ts文件復制到剛剛創(chuàng)建的Egret庫項目的src文件夾中。
2、如果該庫項目src中的文件需要引用其他的庫的代碼,--通常稱為依賴庫,請把這些依賴庫的TypeScript描述文件(也就是,,d,ts文件) 放到libs目錄下,注意在libs目錄下其他類型的文件入.js和*.ts一概不需要
3、編輯Egret庫項目中的配置文件package.json,將之前放入src目錄下的文件名稱依次作為file_list數(shù)組中的元素列出,
3.在Egret項目中導入第三方模塊
在Egret項目的egretProperties.json文件中,添加一下代碼:
moddules:
[
{
"name":"physics", //模塊名稱
"path":"path/to/egret/library/project/root/", //路徑
}
]
編譯某第三方庫后,在index。html文件中應該以模塊名稱physics.js的script外部腳本引用行