遊戲前端學習(一) typescript + egret + egret-EUI系列

本系列主要是我的工作學習歷程,包括日常採坑,遊戲相關的編程、語法、擴展庫等。所以文章會有點流水賬的形式。

 最近找了份新的工作,主要是微信小遊戲開發的,由於我擁有 Java、JavaScript、微信小程序開發等基礎,所以目前主要補充的知識點有 typescript、egret、包括 egret 的擴展類庫:egret-eui。

工作第一天:

我選擇從 Egret Engline 2D 文檔入手,瞭解以後要接觸的工作的大概內容。首先是下載並安裝 Egret Launcher 包括 Egret Wing 3,這些按照官網提示就能完成。通過閱讀與下載Hello World的Demo,可以簡單入門 Egret 項目的編寫包括瞭解項目構造等。

簡單過了一遍項目內容後,我從顯式對象和顯式容器這邊開始瞭解項目的基礎知識。

首先我覺得這塊比較類似 Android 開發的形式,首先是搭建容器,再往容器裏面添加對象。基礎層面上組件化思想可以說是非常強烈了。與 JavaScript 不同,這邊對象包括佈局相互間都有一定的關聯性,少了哪個對象可能在編譯階段就會報錯。

核心顯示類

不同的內容對應不同的顯示對象,Egret 中一共封裝了8個顯示相關的核心類,如下表。

描述
DisplayObject 顯示對象基類,所有顯示對象均繼承自此類
Bitmap 位圖,用來顯示圖片
Shape 用來顯示矢量圖,可以使用其中的方法繪製矢量圖形
TextField 文本類
BitmapText 位圖文本類
DisplayObjectContainer 顯示對象容器接口,所有顯示對象容器均實現此接口
Sprite 帶有矢量繪製功能的顯示容器
Stage 舞臺類

 

類的思想與 Java 相似,在自定義類中可以選擇繼承以上8個核心類,在類中編寫自定義方法創建相關佈局、組件包括一些邏輯處理。

值得一提的是在方法內添加對象的方法是 addChild(對象名),大概是新手最常接觸的一個方法了。

常用的繼承容器有 Sprite , Sprite 繼承自 DisplayObjectContainer,同時實現了 Graphics 繪圖功能,可以在上面進行矢量繪圖、遮罩計算、濾鏡與渲染等。 

而在基礎的繪圖等之外,官網還介紹了文本、事件機制、網絡包括定時器等機制,這些機制與 JavaScript 用法區別不大,主要是語法上有差異,通過閱讀並在項目中加以多次使用可以快速上手並掌握的。

第二天:

第二天我從官網的Demo開始入門,官網的Demo可以提供免費下載,選擇一些重複性低的,跟着代碼過一遍,基本就能對每個功能都跟熟悉點。這天我主要在觀察代碼,發現代碼形式和 Android 相似度更高,並且閱讀了部分 api 的繼承關係,瞭解一下組成關係。

第三天:

第三天我從 Typescript 文檔, egret-EUI,包括教學示例入手。着重瞭解 typescript 的命名空間,這一塊比較抽象,需要多花點時間仔細閱讀。命名空間比較好玩的點是可以將一個單一文件拆分成多個文件。通過繼承、exports 等將數據處理在不同等級的封閉層內。

往下看了 EUI 庫內的 EXML,這個我覺得類似於把 HTML 和 Android 給糅合起來,同時支持 JSP 模式的一個模式語言。

而 EUI 庫內的皮膚意思是將皮膚的邏輯與樣式分離開來,可以在 json 文件中設定相關主題(包括自定義主題),再在皮膚中使用語句啓用主題。

EUI 庫內的數據集合,主要設置項有數據源、數據模板、數據樣式、列表組件、選項卡和自定義項呈示器。列表作爲繼承數據項的一個新類,列表中多出了選中項的概念,可以設置列表默認選中項,同時列表可以做出多選的操作。

容器有多種形式的展現,從簡單的 Group 到層疊。面板、滾動控制容器等。從 Group 開始,他們都比原生容器 Sprite 多了兩個方法【getElementAt() 和 numElements() 】;層疊容器是多個子項在同個頁面展示,通常配合導航欄選項卡一起使用;面板容器是擁有標題欄和內容,標題欄的位置是可以自由設置的;滾動控制容器就是頁面過長就進行滾動控制展開的一個容器頁面,滾動條開始與停止決定權在滾動控制容器的開發者。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章