主域:
//
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 ...