Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现

最新发布了一款微信小游戏《大鱼吃小鱼之小鱼快跑》,这里总结整理一下排行榜相关功能实现的相关思路。对于微信中好友排行榜,微信给出的是在子域使用的一些微信接口,相关内容去查看微信小游戏开发的官方文档吧。

    先说我游戏中好友排行榜的实现:页面上点击 排行榜 按钮时 主域向子域发送消息

Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现_第1张图片
主域发送消息示例

子域设置相应的监听函数

Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现_第2张图片
子域监听示例

FriendDataRank( )函数主要是获取好友数据,然后进行分数比较处理展示等相关操作,这里只展示获取的方式

Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现_第3张图片
获取好友排行榜处理

当然这里要和上传分数一些参数保持一致,上传分数示例如下

Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现_第4张图片
上传分数示例

这里也是在主域将相关数据发送到子域 子域中处理上传的逻辑操作。

以上是处理好友排行榜的相关功能,这其中不需要我们自己搭建服务器保存数据,接下来的世界排行榜就需要我们自己保存玩家的数据了,好在微信提供的云开发平台,我们自己只需实现相关逻辑功能,就可以一键部署到云开发后台了。

我实现的世界排行榜功能思路:在云开发后台创建云函数(具体怎么创建就不介绍了),官网有demo,我创建的uploadScore 函数 用来处理 玩家上传分数,uploadScore 功能是向数据库中保存玩家的最高分数,用了两个字段,openid和score。云函数的调用示例如下

Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现_第5张图片
上传分数到云后台示例

微信云后台会对每个用户生成一个唯一的标识openid,后面会用到这个openId。

接下来数据的展示了,查看世界排行榜时,主域首先 从云后台将一定数量的数据拉下来 (新创建个云函数)

Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现_第6张图片
获取排名前20条数据示例

主域调用方式

Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现_第7张图片
主域获取到消息后发送给子域

子域收到的20条数据包含openid和maxscore,现在子域要是openid调用微信提供的接口wx.getUserInfo 获取与这个openid玩家的相关信息,

这时有两份数据,一份是主域过来的20条,另一份是wx.getUserInfo 回调成功20条,可以根据这两份中的openid字段比较,将两份数据整合成为一份数据后进行在排行中页面展示,我使用的是一条条比较,效率不好,这里不展示我的实现了,若有好的方式欢迎留言讨论。

很长时间不写东西,语言可能整理的不是很好,见谅。附上有微信游戏的连接如下图


Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现_第8张图片

欢迎体验。

你可能感兴趣的:(Cocos Creator微信小游戏 好友排行榜 世界排行榜功能实现)