微信小游戲排行榜總結(jié)

這篇文章寫于218年下半年,基于cocos creator1.9開發(fā),現(xiàn)在已經(jīng)有更好的方式做排行榜了。

1.****子域的概念:

微信小游戲?yàn)榱吮Wo(hù)其社交關(guān)系鏈數(shù)據(jù),增加了子域的概念,子域又叫 開放數(shù)據(jù)域,是一個單獨(dú)的游戲執(zhí)行環(huán)境。子域中的資源、引擎、程序,都和主游戲完全隔離,開發(fā)者只有在子域中才能訪問微信提供的 wx.getFriendCloudStorage() 和 wx.getGroupCloudStorage() 兩個 API,用于實(shí)現(xiàn)一些例如排行榜的功能。由于子域只能在離屏畫布 sharedCanvas 上渲染,因此需要我們把 sharedCanvas 繪制到主域上。

Cocos Creator 從 v1.9.1 版本開始支持打包到子域。

由于開放數(shù)據(jù)域是一個封閉、獨(dú)立的 JavaScript 作用域,所以開發(fā)者需要創(chuàng)建兩個項(xiàng)目:

主域項(xiàng)目工程(正常的游戲項(xiàng)目)

子域項(xiàng)目工程(通過微信 API 獲取用戶數(shù)據(jù)來做排行榜等功能的項(xiàng)目)

2.****工程的結(jié)構(gòu):

子域只保存了排行榜的滑動列表,加載到主域的children_context上。而主域顯示排行榜的界面相關(guān)的內(nèi)容。

圖片1.png
圖片2.png

3.****主域和開放數(shù)據(jù)域的通信:

開放數(shù)據(jù)域不能向主域發(fā)送消息。

主域可以向開放數(shù)據(jù)域發(fā)送消息。調(diào)用 wx.getOpenDataContext() 方法可以獲取開放數(shù)據(jù)域?qū)嵗{(diào)用實(shí)例上的OpenDataContext.postMessage()方法可以向開放數(shù)據(jù)域發(fā)送消息。

// game.jslet openDataContext = wx.getOpenDataContext()

openDataContext.postMessage({

text: 'hello',

year: (new Date()).getFullYear()

})

在開放數(shù)據(jù)域中通過 wx.onMessage() 方法可以監(jiān)聽從主域發(fā)來的消息。

// src/myOpenDataContext/index.js

wx.onMessage(data => {

console.log(data)

/* {

text: 'hello',

year: 2018

} */

})

4.****數(shù)據(jù)上傳和拉取:

首先,在主域中,調(diào)用wx.setUserCloudStorage接口,把想上傳到微信的內(nèi)容通過KVDataList的格式儲存。

圖片3.png

然后在想要獲取的時候,調(diào)用wx.getFriendCloudStorage接口,注意的是,這個接口只能通過我寫在KVDataList中的key,拿到我微信好友中玩過這個游戲的玩家數(shù)據(jù),我們的排行榜就是通過這個接口來獲得數(shù)據(jù)的。

圖片4.png

最后說說群排行的做法,調(diào)用的是wx.getGroupCloudStorage接口,這個接口能拿到我分享的群消息,調(diào)用方式和上面如出一轍。

圖片5.png

5.****子域的發(fā)布:

打開主域項(xiàng)目,在 菜單欄 - 項(xiàng)目中打開構(gòu)建發(fā)布面板,選擇 Wechat Game 平臺,填入 [子域代碼目錄],該目錄是子域構(gòu)建后所在的路徑,并且這個路徑需要放在主域構(gòu)建目錄下。然后點(diǎn)擊構(gòu)建。

圖片6.png

該步驟會幫用戶自動配置到 game.json 中,用于辨別子域文件在主域發(fā)布包下的所在目錄。

圖片7.png

打開子域項(xiàng)目,打開構(gòu)建發(fā)布面板,選擇 Wechat Game 平臺,渲染模式選擇 Canvas 模式或者自動模式,并勾選 [小游戲子域工程],把當(dāng)前工程打包成子域可用的文件。

發(fā)布路徑 設(shè)置為主域中填入的 [子域代碼目錄] 相同路徑,即指定到主域項(xiàng)目工程的發(fā)布包目錄下。

圖片8.png

6.****分享介紹

微信分享分為三種:

微信小程序自帶的右上角菜單欄里面的分享功能

正常的主動調(diào)用的分享

群分享

第一種右上角分享需要調(diào)用兩個接口,他們寫在主場景綁定的js代碼的onload之中:

圖片9.png
圖片10.png

第三種群分享也有個接口要寫在這,目的是開啟群分享:

圖片11.png

而一般分享和群分享的調(diào)用方式其實(shí)差不多,都是這個接口:

圖片12.png
圖片13.png

參考一段我們的代碼,success返回的內(nèi)容中如果有shareTickets表明就是群分享了。

上述代碼還包含了一個關(guān)鍵的群的唯一性判斷。微信給我們提供這么一個接口:

圖片14.png
圖片15.png

我們現(xiàn)在想做群的唯一性判斷只有通過這個接口獲取到encryptedData然后讓我們后端幫我們解析出來再把openGId返回給我們,再通過這個來對比。

分享還有個功能,可以讓被分享者通過這個打開游戲的時候獲得一個分享者提供的數(shù)據(jù),借由這個功能,我們可以制作邀請功能。


圖片16.png

目前,我在query這里傳入我自身的openid作為標(biāo)識符,然后,被分享者打開游戲的時候,通過wx.getLaunchInfoSync接口拿到,在登錄接口傳給服務(wù)器,讓數(shù)據(jù)庫記錄下這個玩家是通過我邀請的,來達(dá)到邀請玩家的功能。

圖片17.png

7.****引擎升級后新版本的子域制作

自從引擎升級到2.0.7版本之后,之前使用的方法沒用了,重新修改子域的代碼。
在主域中負(fù)責(zé)繪制子域的node增加一個WXSubContextView屬性。(必須)
子域現(xiàn)在不能使用美術(shù)字體,想辦法用程序字替代。其它內(nèi)容變化不大,可以酌情修改。
有一個分享到群回來看排行榜這個功能由于微信的改動導(dǎo)致現(xiàn)在很雞肋,參考了競品,都是必須點(diǎn)擊自己分享到群的分享頁卡重新進(jìn)入游戲之后再把自己的排行榜刷新,這樣原本的排行榜就被替代了,這個功能暫時隱藏了。
還有就是適配的問題,子域的適配可能會因?yàn)榇笃潦謾C(jī)導(dǎo)致界面資源的橫向拉伸,或者坐標(biāo)偏移,這個需要進(jìn)行適配。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,185評論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,656評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,647評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,446評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,951評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,189評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,718評論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,800評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,419評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,420評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,755評論 2 371

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