最近花了兩周時間在微信小游戲里踩坑,覺得挺有意思的,在這里分享一下開發的過程,點此可查看項目 RedHat 。
首先介紹一下基礎:小游戲 官網教程 、騰訊課堂的課程: 白鷺教育 - 成語大挑戰小游戲開發 (視頻中的資料鏈接:https://pan.baidu.com/s/1kkrCUwn0hikPLVg11PPFAA 密碼:3gtt)、B站的教程:使用白鷺引擎快速開發微信小游戲最全指南 。
這個小游戲是一個跳躍類游戲,基於白鷺(Egret)引擎開發,選用該引擎的原因是目前其對小游戲的開發支持較好,可以少踩些坑。上張圖展示一下:
圖 1 - 1 首頁.png
一、安裝 Egret launcher
下載后安裝,然后在引擎頁選擇安裝 5.1.2 以上版本,推薦最新版本;在工具頁下載 Egret Wing 3 ,這是一個編輯器,可以很方便地編輯 exml 格式的文件,更方便地布局頁面。等待引擎及 Egret Wing 3 安裝好后即可進入項目頁創建新的項目了。
二、創建新項目,熟悉 Egret Wing 3
1、創建項目:
在項目頁點擊 創建項目 ,然后輸入項目名稱和項目存放的路徑,因為我這個項目用到的是 EUI ,所有我創建的是一個 EUI 項目,引擎版本選擇剛剛下載的那個版本即可。選擇擴展庫 建議勾選上 game 游戲庫,也可以在開發的時候在添加到
項目中,egret.setTimeOut 方法需要 game 游戲庫的支持;第六個的 tween 緩動動畫庫是游戲中的物體緩動的必需庫文件。舞台尺寸默認,小游戲不支持 showAll 的縮放模式,需要更改,然后點擊 創建 。
圖 2 - 1 創建項目.png
2、發布編譯項目:
依據下圖進行該項目的的發布設置,選中 微信小游戲 並 設為默認發布 ;然后填入自己的 AppID,在注冊微信公眾平台的時候一定要注意,在微信公眾平台的 設置 > 基本設置 > 服務類目 中第一個大類一定要選擇 游戲 ,否則在編譯項目后會提示無
app.json,看過小游戲官網教程的話就知道小游戲加載的是 game.json ;填上項目名稱后點擊 確定 ,等待發布編譯,之后操作下圖中的第六步,打開 Egret Wing 3,然后在該編輯器中進行編寫代碼。
圖 2 - 2 發布設置.png
3、熟悉 Egret Wing 3:
打開項目后可自行查看各個文件,感受一下每個文件是什么作用。其中 egretProperties.json 是一個很重要的文件,打開的時候確認 current 的值,如果是 web 的話,點擊調試按鈕的時候會彈出 H5 頁面查看小游戲的效果,更改為 wxgame
即可在點擊調試按鈕的時候直接打開微信開發者工具進行預覽,下圖左上角的箭頭即指向調試按鈕。前面提到的勾選 game 庫,如果后期添加的話,需要在 egretProperties.json 中按紅框的格式添加,然后在終端輸入 egret build -e 進行加載。
圖 2 - 3 egretProperties.json.png
src 文件夾下的 Platform.ts 是 Egret 引擎和微信小游戲之間的橋接文件,主要功能是使用小游戲的 API ,Main.ts 文件是在該項目中加載 Platform.ts 文件。同時,為了避免混淆,我們在 src 文件夾下新建 game 文件夾用於存放我們自己的
游戲文件,右擊game 文件夾選擇 新建模板文件 > 新建 EUI 組件 ,輸入類名后,修改 皮膚默認路徑 ,也放到 resource 的 game 文件夾下,避免混淆。
圖 2 - 4 新建 EUI 組件.png
可以對照着我放在 Github 上的源碼,每個新建的 EUI 組件我全部采用單例模式編寫,利於后期調用被其他組件調用該組件中的方法。下圖中的紅框即是快速布局功能區。
圖 2 - 5 編輯 exml 文件.png
三、Egret 中重要的 API
因為 Egret 不止是針對微信小游戲的引擎,所以其官網資料體系比較大,對小游戲有用的主要是以下幾個:
開發者中心 > 文檔 > Egret Engine 2D 、Egret 擴展庫 、Egret API 、Egret 教學示例 、Egret 交流社區 。
其中在我這個項目中比較重要的幾個點分別為: 滾動控制容器 、setTimeOut 、緩動動畫及其 wait 延遲方法 、碰撞檢測 、緩動動畫的暫停與恢復 、通過深度值獲取子對象來設置參數(深度管理) 、Timer定時器(后期剔除)等,在 GamePage.ts 中可查看具體用法。
因為發布需要軟著登記,所有暫時不發布了,先玩玩單機版的吧。