pixijs微信小遊戲排行榜開放域開發

2021-09-03 08:29:28 字數 1682 閱讀 5949

主域:

//

let opendatacontext = wx.getopendatacontext();

let sharedcanvas = opendatacontext.canvas;

const = wx.getsysteminfosync()

sharedcanvas.width = windowwidth * pixelratio ;

sharedcanvas.height = windowheight * pixelratio;

//向開放域傳送訊息

wx.postmessage();

this.loop();

下面是主域迴圈內的**:

這次主要是要將離屏canvas放進容器內;如果之前放進去了先刪除之前的;

因為是個canvas我們用了texture.update()是為了讓canvas能用,預設是用的webgl;

loop()

let opendatacontext = wx.getopendatacontext();

let sharedcanvas = opendatacontext.canvas;

var texture = pixi.texture.fromcanvas(sharedcanvas);

texture.update();

var opensp = new pixi.sprite(texture);

opensp.name = 'opensp'

this.ui.scene.addchild(opensp);

requestanimationframe(this.loop.bind(this));

}

與開放域的互動:

wx.postmessage這是唯一的溝通方式,沒有類的呼叫,開放域內也不能向自己的伺服器發請求;你要互動就用這個;警記;

開放域:

這裡你要作的幾件事;第一要設定好開放域的目錄;第二做好接受來自主域的監聽;第三渲染離屏canvas;

遊戲專案中根下面會有乙個game.json,加上

「opendatacontext」: 「js/myopendatacontext」;

這是設定開放域檔案的目錄,這個目錄下的**與你的專案是隔絕的不能相互

呼叫;相當於兩個專案;

以下是我專案的***,監聽了兩個請求;請求使用者好友排行,另乙個是關閉;

wx.onmessage(data => 

})

/**

* 獲取好友排行榜

*/function getfriendranking(key, openid) else

} else }})

}

這樣就拿到的好友資料並且可以拿去canvas中去渲染了;

排行榜的資料怎麼產生的:

var kvdatalist = new array();

kvdatalist.push();

wx.setusercloudstorage(,

fail(res)

})

以上是我專案中的**;wx.setusercloudstorage,是官方介面,,就是存的資料了。

微信小遊戲獲取排行榜

儲存每個使用者的分數 獲取好友列表,並獲取好友的分數 渲染排行榜 步驟一 獲取當前使用者託管資料當中對應 key 的資料。該介面只可在開放資料域下使用 wx.setusercloudstorage object 例如 儲存最高分 var score 100 var kvscore wx.setuse...

微信小遊戲排行榜卡頓或無法滑動

在我們製作子域過程中,會出現排行榜顯示時,記憶體損耗會很高,官方給出的解釋是 當開放資料域被喚起後,只要wxsubcontextview元件 load 成功,開放資料域貼圖就開始更新到主域並顯示,之後每幀都會更新貼圖。但是開放資料域貼圖的更新有時可能損耗比較高,開發者設計的開放資料域又是靜態介面 比...

教你快速開發乙個微信小遊戲好友排行榜

要做這個好友排行榜.必然要有好友的戰績比分,然後再做排序,最後將資料呈現在ui上 可以分為下面幾個步驟 儲存每個使用者的分數 獲取好友列表,並獲取好友的分數 渲染排行榜 儲存使用者資料,注意限制單條資料容量不得超過1024位元組,單個使用者資料總條數不得超過128條 儲存最高分 var score ...