微信小游戏排行榜功能快速开发教程

news/2025/2/13 15:59:41/

要做这个好友排行榜.必然要有好友的战绩比分,然后再做排序,最后将数据呈现在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元素展示出来 .

Matchvs游戏云:http://www.matchvs.com/
Matchvs,一个专注于移动游戏的国内联网服务器引擎,助你一个工作日完成强交互的联网接入,快速完成小游戏开发。


http://www.ppmy.cn/news/191591.html

相关文章

Redis结合业务逻辑实现排行榜

文章目录 前言实现个人总结附加信息缓存问题删除问题排序问题 测试demo 前言 大家好,我又回来了。已经好久没有写博客了,今天要写的排行榜的需求:排名前50,然后标记自己的位置,如果超过就补到后面去。 其实实现很简单…

golang笔记:游戏中排行榜的实现

date: 2017-08-29 title: “golang笔记:游戏中排行榜的实现” draft: false categories: golanggame tags:golanggame thumbnailImagePosition: left 原文地址https://github.com/liyiheng/blog-gen 游戏开发中排行榜经常出现,接触过的排行榜有两种。一种是由玩家挑…

使用Redis构建高效稳定低延迟的排行榜业务

一、业务描述 现有一排行榜业务,数据库中拥有百万级用户,中秋佳节将要来临,用户可以写一篇关于中秋的故事,故事可邀请好友点赞,也可以打赏该故事,现在要挑选出关于中秋话题相关的故事,根…

PyFlink 有状态流处理实例 实时排行榜

01 UDAF 聚合函数的使用 自定义聚合函数(UDAF),将多条记录聚合成一条记录。其输入与输出是多对一的关系,即将多条输入记录聚合成一条输出值。 需要注意的是:当前聚合函数仅在流模式下的 GroupBy 聚合和 Group Window…

排行榜奖励发放

一般来说排行榜奖励都通过邮件来发放,要不就是对于在线用户直接发给用户自身,对于离线用户发到用户的离线邮箱,用户上线可以通过邮件取到。这样做简单直接,易于处理,也不容易出错,但是在用户很多的时候可能…

字节跳动系统设计面试实时排行榜

题目 现在有个游戏,有亿级别的用户会来玩,玩游戏后会获得一个分数,当游戏结束的时候返回给用户自己所在的排名和排名前百分比,如何设计这样一个系统。 思路 功能其实并不算复杂,有很多种方式可以实现,所…

mongo aggregate统计排行榜及spring mongo实现

数据分析里排行也是很常见的一项统计,下面是随便弄的测试数据的租赁次数排行统计: 脚本: db.leaseorders.aggregate([ { $match: { tenantId: "5" } }, { $project: { goodsName: 1, quantity: 1 …

大规模排行榜系统实践及挑战

声明:本文来自腾讯增值产品部官方公众号小时光茶社,为CSDN原创投稿,未经许可,禁止任何形式的转载。 作者:唐聪,2014年毕业加入腾讯,SNG增值产品部后台开发工程师,一直从事QQ会员后台…