微信好友排行榜 - 白鹭对接

由于小游戏开放数据域是独立的,无论是代码,文件还是资源都是和app分开的

参考:关系链
https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/open-data.html
https://segmentfault.com/a/1190000015034592
参考:白鹭对接:
http://developer.egret.com/cn/github/egret-docs/Engine2D/minigame/openDataContext/index.html

1.把开发的项目和开放域

想象成是两个完全独立的部分,或者把开放域想象成一个沙箱

2.如何沟通

A.项目下向开放域发送数据

发送的参数是不固定的,command是egret demo写好的沟通key,其他参数随便增减

platform.openDataContext.postMessage({
    x: this.scroller.x,
    y: this.scroller.y,
    date: new Date(),
    command: "offset"
});
B.开放域中的接收
function addOpenDataContextListener() {
  wx.onMessage((data) => {
    if (data.command == 'offset') {
      offset.x = data.x;
      offset.y = data.y;
    }
  });
}
C.开放域不能向项目发送任何信息

也就是说主从关系是单向的

2.更新自己的信息

发送的数据格式已经写明,数据格式必须正确,可以包含多个,每个obj中只包含一个key,一个value

此为和服务器沟通,不和开放域沟通

let kvData = [{key: "score", value: String(score)}];
wx.setUserCloudStorage({KVDataList:kvData, success:(re)=>{
  // if(debug&DM.log) console.log("[wx]success",re);
},fail:(re)=>{
  // if(debug&DM.log) console.log("[wx]fail",re);
},complete:(re)=>{
  // if(debug&DM.log) console.log("[wx]complete",re);
}});

3.开放域下获取好友数据

  • 记住获得好友的kv数据的keyList必须是你提交的key中的值,可多个,如果不存在则列出来的好友列表kv数据是空的

此为和服务器沟通

wx.getFriendCloudStorage({
    keyList:["score"],
    success:res => {
    }
});

4.如何排序

在success中对res数据进行排序

function preloadFriendData(){
  wx.getFriendCloudStorage({
    keyList:["metreMax"],//,"metreNow","update_time"
    success: res => {
      let data = res.data
      data.sort((a,b)=>{
        let am = getKV(a,"metreMax");
        let bm = getKV(b,"metreMax");
        if(isLog) console.log('[wx]compare',am,bm);
        if(am>bm){
          return -1;
        }else if(am<bm){
          return 1;
        }
        return 0;
      });
      totalGroup = data;
    }
  })
}

function getKV(data,key){
  if(data.KVDataList.length<=0) return 0
  for(let i=0;i<data.KVDataList.length;i++){
    if(data.KVDataList[i].key==key){
      return Number(data.KVDataList[i].value);
    }
  }
  return 0;
}

5.如何更改开放域的大小和位置

  • 因为在白鹭下的位置是绘制的bitmap位置,所以很好处理。
  • 更改开放域画布大小
let openDataContext:any = wx.getOpenDataContext();
let sharedCanvas:any = openDataContext.canvas;
sharedCanvas.width = 300;
sharedCanvas.height = 250;

注意调整画布位置和大小后,原有点击算法无效了,需要自己按照信息去修改

6.扩展按钮

原白鹭demo按钮处理是记住位置点,这里你小处理一下,做成一个集成

function context_drawButton(imgage,x,y,width,height,func{
  context_drawImage(image, x, y, width, height);
  let obj = {l:x,r:x+width,t:y,b:y+height,func:func};
  poolBtnInfo.push(obj);
}

然后在 function onTouchEnd(event) {中进行适配

总结

  • 因为开发小程序小游戏本身就限制了大小,所以开放域的开发尽量不要使用额外的库扩展,按照原生api一点一点调试,还好每次改动微信开发者工具内跑的项目都会刷新
  • res加载是需要时间的,如果res加载完毕之前调用渲染,资源是空的(白鹭的demo)
  • 滚动翻页就别想了,效率性能都不会好,所以在做好友排行榜要不就只一页,要不就做分页(白鹭demo)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容