用Egret開發(fā)微信小游戲之一

前言

本文主要記錄用Egret開發(fā)微信小游戲過程中碰到的一些問題及文檔中沒有提到的一些需要注意的事項眼溶。如果是初學者丑蛤,想要學習如何用Egret開發(fā)微信小游戲留攒,請?zhí)D(zhuǎn)到官方文檔進行查閱辕宏。

Egret Engine2D 文檔地址

選擇框架的原因

目前開發(fā)微信小游戲的主要框架有:Egret Laya Cocos辑舷。去年過年前白魂,接到了個項目汽纤,開發(fā)一款小游戲。由于之前未開發(fā)過游戲且項目時間緊福荸,于是為了快速完成開發(fā)蕴坪,最終選擇了Egret作為該小游戲的開發(fā)框架。
之所以選擇框架逞姿,而不是用原生的js寫辞嗡。主要有那么幾個點(沒列完):
1、原生的js寫小游戲?qū)嵲陔y度過大滞造;
2续室、布局及適配問題,比如一個實現(xiàn)一個帶背景色的文本框谒养,讓文本居中對齊挺狰,換行、滾動列表等买窟;
3丰泊、點擊事件問題,小游戲中原生判斷是通過判斷觸摸點的位置...(想象一下cancas上一堆元素始绍,你要挨個判斷的時候)瞳购;
4、點擊事件捕獲亏推,例如加載一個半透明蒙版学赛,蒙版下的內(nèi)容不給點擊...

用到的庫

由于Egret年堆,它底下也分很多庫。所以盏浇,這里簡單說一下变丧。(初學的話,只看Egret Engine2D就可以了)

  • 一般開發(fā)小游戲肯定用到了它的核心庫绢掰,也就是Egret Engine2D 痒蓬;
  • 其次如果用到了列表、滾動列表等滴劲,那么需要用到EUI庫攻晒;
  • 如果用到了動畫,那么就涉及Tween(這個最簡單)哑芹。
  • 資源加載庫RES(這個不用學也可以)炎辨。

其中EUI庫中封裝了一些東西:
組件:像Label Image Button 等捕透。
布局類:像BasicLayout聪姿、TileLayout(多列布局時用到,常用于做圖鑒乙嘀、裝備格子之類的東西)末购。

新建項目

假設你已經(jīng)安裝好了Egret Wing和Egret Launcher這2個東西。那么下面新建一個項目試試看虎谢。
如下圖所示盟榴,你需要注意的地方主要有:

  • 1、項目類型(這里其實你選游戲項目和EUI項目婴噩,都是一樣的)
  • 2擎场、把egret核心庫 assetsmanager資源管理器 t ween緩動動畫庫 eui界面制作庫 game游戲庫都勾上即可。
  • 3几莽、舞臺尺寸迅办,填375*667即可,也就是6s的默認尺寸(這個其實沒什么影響的章蚣。)
  • 4站欺、縮放模式,這個可以點旁邊的纤垂?去具體查看詳情矾策,一般填noBorder就可以了(這個模式是等比例拉伸至最小的邊能顯示完全,不會存在黑邊峭沦。但作為背景贾虽,可能會一部分邊邊角角的圖片沒被顯示)。
  • 5吼鱼、旋轉(zhuǎn)方式蓬豁,看你項目的了是豎屏還是橫屏了履磨。豎屏是portrait,橫屏是landscape庆尘,或者是橫豎屏都支持的話剃诅,就選auto。


    image.png

所用語言

Egret使用的是TS開發(fā)(也就是TypeScript驶忌,但其實和用js差不多矛辕,沒什么值得注意的地方,這里不多講付魔。)

構(gòu)建聊品、調(diào)試、發(fā)布(發(fā)布為其他平臺的游戲)

進入到剛剛新建的界面几苍,主要是下方這樣翻屈。


image.png

由于默認創(chuàng)建的是WEB項目,所以此時妻坝,點擊 構(gòu)建 或者 調(diào)試的話伸眶,會彈出下面一個東西。


image.png

構(gòu)建和調(diào)試的區(qū)別:官方文檔中并沒有提到這一茬刽宪,所以我這邊也不知道它們之間有什么區(qū)別厘贼。
發(fā)布:發(fā)布為其他平臺的游戲,這里我們主要發(fā)布為微信小游戲圣拄,填appid和小游戲名稱即可嘴秸,這里的小游戲名稱是你用微信開發(fā)工具打開小游戲項目時里顯示的那個項目名字。
值得注意的是:

  • 1庇谆、appid要在你填寫了游戲類目之后才有用岳掐。
  • 2、每次發(fā)布都會覆蓋platform.js和openDataContext下的index.js文件饭耳,這2個串述,1個是和原生小游戲API交互的文件,1個是繪制排行榜的文件哥攘。所以剖煌,如果中途想要更換appid,編譯到其他小游戲賬號中時逝淹,記得先保存這2個文件8ⅰ(初次發(fā)布則沒有這個煩惱,因為默認就什么鬼東西都沒有)
image.png

然后點確定栅葡,Egret就會在你的項目目錄下茉兰,新建一個 EgretWxGame_wxgame的文件,把小游戲編譯到該目錄欣簇。


image.png

然后打開规脸,就可以在微信開發(fā)工具上預覽小游戲啦坯约。


image.png

這里還有個問題,就是在下方看到打印出js/egret.js和js/eui.js超過500K莫鸭。
這怎么能忍闹丐,小游戲的主要包就4M大小,egret2個庫就占用了1M多被因。所以卿拴,我們可以用Egret提供的命令去壓縮一下。
用命令行窗口梨与,進入到上面看到的EgretWxGame文件夾下(也就是你的項目的根目錄下)堕花,執(zhí)行以下代碼:
egret publish --target wxgame;
然后等再次編譯好粥鞋,就可以看到已經(jīng)沒有下方警告了缘挽。


image.png

修改配置

image.png

和微信小游戲原生API交互問題

Egret 框架和原生小游戲API交互,主要是通過platform.js進行的呻粹。
所以壕曼,日常開發(fā)的話是用Egret,然后編譯到微信小游戲尚猿,再通過微信開發(fā)工具來調(diào)試原生API窝稿。
在嘗試著進行兩者之間的交互前,我們先看下Egret項目中Platform.ts和微信小游戲項目中platform.js中2者的聯(lián)系凿掂。


image.png

image.png

可以看到流程是這樣的,在Platform.ts中的declare interface Platform中定義接口纹蝴,在 下方的DebugPlatform中也定義同樣的方法庄萎,然后在platform.js中實現(xiàn)該方法,這樣就實現(xiàn)了從2者之間的交互塘安。

下面來動手實現(xiàn)一次交互糠涛,通過點擊目前屏幕上的背景,傳遞參數(shù)name到platform.js中兼犯,在platform.js中輸出 hello + 參數(shù)name的值忍捡。

步驟如下:
1、在Main.ts中的createGameScene方法中加入如下語句:


image.png
sky.touchEnabled = true;
sky.addEventListener(egret.TouchEvent.TOUCH_TAP,this.clickMaskOnMain,this);

2切黔、實現(xiàn)clickMaskOnMain方法

 private clickMaskOnMain(){
     platform.clickMask('Egret');
 }

3砸脊、在Platform.ts中定義如下接口和方法


image.png

4、在platform.js中實現(xiàn)該方法

clickMask(name){
    console.log('hello ' + name);
  }

然后構(gòu)建一下纬霞,點擊背景凌埂,可以看到控制臺有打印出,至此诗芜,交互這邊算是沒問題了瞳抓。


image.png

小結(jié)

篇幅過長了埃疫,所以就先到此結(jié)束。
本想寫一些值得注意的地方孩哑,沒想到還是寫成了教程類的文章栓霜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市横蜒,隨后出現(xiàn)的幾起案子叙淌,更是在濱河造成了極大的恐慌,老刑警劉巖愁铺,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹰霍,死亡現(xiàn)場離奇詭異,居然都是意外死亡茵乱,警方通過查閱死者的電腦和手機茂洒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓶竭,“玉大人督勺,你說我怎么就攤上這事〗锓。” “怎么了智哀?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荧恍。 經(jīng)常有香客問我瓷叫,道長,這世上最難降的妖魔是什么送巡? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任摹菠,我火速辦了婚禮,結(jié)果婚禮上骗爆,老公的妹妹穿的比我還像新娘次氨。我一直安慰自己,他們只是感情好摘投,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布煮寡。 她就那樣靜靜地躺著,像睡著了一般犀呼。 火紅的嫁衣襯著肌膚如雪幸撕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天圆凰,我揣著相機與錄音杈帐,去河邊找鬼。 笑死,一個胖子當著我的面吹牛挑童,可吹牛的內(nèi)容都是我干的累铅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼站叼,長吁一口氣:“原來是場噩夢啊……” “哼娃兽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起尽楔,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤投储,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后阔馋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玛荞,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年呕寝,在試婚紗的時候發(fā)現(xiàn)自己被綠了勋眯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡下梢,死狀恐怖客蹋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孽江,我是刑警寧澤讶坯,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站岗屏,受9級特大地震影響辆琅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜担汤,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一涎跨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧崭歧,春花似錦、人聲如沸撞牢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屋彪。三九已至所宰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間畜挥,已是汗流浹背仔粥。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人躯泰。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓谭羔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親麦向。 傳聞我的和親對象是個殘疾皇子瘟裸,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容