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

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

保存每个用户的分数

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

// 保存用户数据,注意限制单条数据容量不得超过1024字节,
// 单个用户数据总条数不得超过128条
wx.setUserCloudStroage(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元素展示出来 .

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

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

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

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

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

  3. 教你快速开发一个微信小游戏好友排行榜

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

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

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

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

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

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

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

  7. 微信小游戏的设计和开发

    微信平台不但承载了聊天相关的基础属性,同时也有公众号的媒体属性.小程序的工具属性和支付的金融属性,是一个大而全的平台.因此越来越多的开发者基于小程序进行游戏开发,简单易用,支付方便,也是游戏开发者一个 ...

  8. 微信小程序/uni-app 蓝牙打印开发教程和常见问题总结【文末附源码】

    微信小程序/uni-app 蓝牙打印开发教程和常见问题总结[文末附源码] 文章目录 微信小程序/uni-app 蓝牙打印开发教程和常见问题总结[文末附源码] 1️⃣ 写在前面 2️⃣ 蓝牙连接流程 3 ...

  9. 【转】微信小游戏开发源码_教程_工具_资源最新集合

    [小游戏资源] 微信小游戏开发资源目录 一.微信官方游戏教程 小游戏简易教程 小游戏API大全 小游戏开发工具 二.微信小游戏图标资源 Game-icons.net 三.微信小游戏图片资源 Super ...

最新文章

  1. 至强® 平台配备先进遥测技术让您的数据中心更智能
  2. 如果你要对一个变量进行反向传播,你必须保证其为Tensor
  3. php简单创建多级目录
  4. c# dataGridView 设置
  5. redlock java_Redlock分布式锁
  6. Django中@login_required用法简介
  7. mysql 表与表之间的条件比对_十六年老司机笔记:MySQL性能优化之必备技能
  8. vue3.0项目创建
  9. ubuntu下sudo:add-apt-repository:command not found 问题
  10. SQL Server报表——小白开发笔记
  11. C++基于MFC编程——课程管理系统
  12. Microsoft SQL server Management Studio工具报错“应用程序的组件中发生了无法处理的异常”...
  13. TOEFL wordlist 17
  14. cdd图像修复matlab,图像修复CDD模型新算法①.PDF
  15. 我的世界服务器如何修改头像,我的世界单机模式怎么换头像
  16. 数据科学家的一天,是怎样度过的?
  17. 禾川科技科创板上市破发:大跌17% 公司市值近30亿
  18. pycharm使用记录
  19. 技术人攻略访谈三十八-许式伟:十一年逆流顺流,首席架构师到CEO
  20. 【转】架构师成长历程:行到水穷处,坐看云起时

热门文章

  1. 【LOJ6197】法克(最长反链)
  2. 微乳法可控合成硫酸钡纳米粒子
  3. 量化投资接口有哪些种类?
  4. html文件打开教程
  5. map容器对象插入数据的4种方式【转】
  6. STL map使用
  7. Redis分布式实现原理
  8. mysql 银行卡号数据类型_MYSQL 数据类型
  9. Android中Service的使用详解和注意点(LocalService)
  10. vivado的简单使用