概述

​ 要做这个好友排行榜.必然要有好友的战绩比分,然后再做排序,最后将数据呈现在UI上 , 可以分为下面几个步骤:

  1. 保存每个用户的分数
  2. 获取好友列表,并获取好友的分数
  3. 渲染排行榜

保存每个用户的分数

保存每个用户的分数,需要调用微信的云存储API,将用户的分数持久化的存起来 .

// 保存用户数据,注意限制单条数据容量不得超过1024字节,
// 单个用户数据总条数不得超过128条
wx.setUserCloudStorage(Object)

//存储最高分
var score = 100;
var kvScore = {"key":"score","value":score};
wx.setUserCloudStroage({"KVDataList":[kvScore]},"success":function(){//
});

获取好友列表,并获取好友的分数

​ 游戏中将玩家的分数保存起来以后,需要调用微信的云存储API wx.getFirendCloudStorage, 获取玩家的微信好友数据,这样就拿到了每个好友的最高分.

值得一提的是,微信的这个接口在内部隐蔽的使用其微信的社交关系链 .

返回列表中的包含的 调用过wx.setUserCloudStroage 这个接口的用户.

渲染排行榜

对分数进行排序 , 得到一个排行榜

let sharedCanvas = wx.getSharedCanvas()function drawRankList (data) {data.forEach((item, index) => {// ...})
}wx.getFriendCloudStorage({success: res => {let data = res.datadrawRankList(data)}
})

注意这个 sharedCanvas , 这是独有的画布 ,与小游戏中的画布不是同一个东东.

使用sharedCanvas来自定义显示玩家的用户排行榜

重要说明

​ 上述所涉及的微信接口 , 都只能在微信小游戏的 子域 使用 , 微信官网也称之为开放数据域 , 其实应该称之为 封闭数据域 .
​ 为什么这么说呢?
​ 因为子域的js代码执行环境和小游戏本身的代码执行环境是隔离的. 两者之间不能相通 , 子域只能接收外部的消息(如游戏的最高分),不能往外发消息(不能把用户的好友关系链数据发给开发者服务器) , 内存不共享,也就意味着,开发者拿不到微信的社交关系链数据 . 在这样的封闭条件下,开发者能做的只能是在子域的画布上将排行榜数据以个性化的UI元素展示出来 .

参考资料

Cocos Creator 实现微信好友排行榜
http://docs.cocos.com/creator...

微信小游戏关系链数据使用指南
https://developers.weixin.qq....

教你快速开发一个微信小游戏好友排行榜相关推荐

  1. 教你“偷偷”的获取微信小游戏好友关系链数据

    好友是是很多游戏都有的功能,原因在于好友玩法可以提升用户间的互动性,增加产品和用户的黏性.对提升留存率有重要帮助.很多游戏策划和产品经理都喜欢在游戏中加入这个设定,在腾讯开发平台.空间玩吧平台也都提供 ...

  2. 菜鸟| 微信小游戏好友排行榜教程

    写在前面:随着越来越多的新人开始接触白鹭引擎,创作属于自己的游戏.考虑到初学者会遇到一些实际操作问题,我们近期整理推出"菜鸟"系列技术文档,以便更好的让这些开发者们快速上手,Egr ...

  3. 菜鸟|Egret微信小游戏好友排行榜教程

    原文链接:https://mp.weixin.qq.com/s/kYIdnHv-C5KuR9snekPNBg 原文虽然是菜鸟教程,但是有几个地方没有说清楚,补充如下. 你可以先看原文,看不懂时,再来这 ...

  4. 微信小游戏好友排行榜快速开发教程

    要做这个好友排行榜.必然要有好友的战绩比分,然后再做排序,最后将数据呈现在UI上 , 可以分为下面几个步骤: 保存每个用户的分数 获取好友列表,并获取好友的分数 渲染排行榜 保存每个用户的分数 保存每 ...

  5. Layabox开发微信小游戏好友排行榜功能流程

    官方参考文档:(https://ldc2.layabox.com/doc/?nav=zh-ts-5-0-7) 一.主域项目,即小游戏(Laya2.0版本) 针对微信小游戏初始化 MiniAdpter. ...

  6. 使用云数据库,国庆快速开发一个微信小程序

    国庆七天,如果不想峡谷.王者七日游,就来跟我一起开发个小程序吧,不需要多高的技术,只要你会一点点前端css.html知识,不需要你了解后端语言,更不需要单独部署一个后端服务,十分简单! 之前我写过一个 ...

  7. 微信小程序是什么?如何快速搭建一个微信小程序?

    目录 一.微信小程序是什么 二.安全管理 三.微信小程序的功能 四.快速开发一个微信小程序APP 1.集成即构实时音视频SDK 2.初始化SDK引擎 3.创建房间与登录房间 4.房主创建房间 5.推流 ...

  8. 开发一个Canvas小游戏 实现一个游戏“引擎”

    前言 这个游戏其实在三四年前就写了,中间还重构过好几次,之前都是用简单的面向对象和函数式编程来写,游戏中的元素关系到还是分的挺开,但是游戏的渲染,运算等逻辑分的不够清晰,整个逻辑基本都是自顶向下的流水 ...

  9. 利用Phaser开发微信小游戏(排行榜小结)

                                                                利用Phaser开发微信小游戏(排行榜小结) 小游戏中的开放数据域可用来保存游戏 ...

最新文章

  1. leetcode算法题--旋转数组的最小数字
  2. Spark SQL 最简单例子
  3. Error starting userland proxy: listen tcp 0.0.0.0:5601: bind: address already in use
  4. java定时线程池_java 定时器线程池(ScheduledThreadPoolExecutor)的实现
  5. Scaffolding Template on Asp.Net Core Razor Page
  6. Docker搭建SonarQube代码质量检查平台
  7. oracle查询最近十条数据_Oracle-查询最近更新的前10条数据
  8. 虚拟机中安装vmware tools 到 Debian 时出现 找不到kernel headers的提示
  9. Java关系操作符简写
  10. python下载贴吧的图片
  11. DREAD风险评估模型
  12. python 网页设计实践报告_网页设计实习报告范文
  13. 项目方案宣讲应该注意的内容
  14. DevExpress 单元格的设置(可设字体、字号、前景色、背景色)
  15. 原创 牛客网产品笔试题刷题打卡——需求分析/数据分析/文档攥写
  16. Python-函数入参和全局变量
  17. 深度学习【道路提取】:马萨诸塞州道路数据集分享
  18. 怎么建立软连接和删除软连接、宏定义个声明一年有多少秒、关于自定义函数类型指针
  19. Java学习查漏补缺及知识点整理
  20. RTSP协议学习笔记

热门文章

  1. Jenkins安装(win系统)
  2. three.js+shader 制作粒子飞线,小蝌蚪那种。
  3. 集思广益,这样的设计可行吗?
  4. Oracle认证是什么?就业前景如何?
  5. 【工作技巧】Ubuntu备忘记录
  6. api arx autocad_【新提醒】[ARX]利用AutoCAD 2005.NET API进行AutoCAD的二次开发(一)
  7. SQL教程——order by语法
  8. 江苏计算机等级应用考试试题,2010江苏省全国计算机等级考试二级笔试试卷VB理论考试试题及答案...
  9. 投资数字货币要不要“区分”?
  10. 南自动化计算机控制实验报告,东南大学计算机控制实验报告一.docx