嗨!大家好,我是小蚂蚁。
经过了几天的摸索,终于把在世界排行榜的功能走通并实现了,顺便在我的游戏【精致1010】中实现并进行了验证。
本篇教程就是如何使用微信小游戏制作工具实现世界排行榜的功能(可以在游戏中增加多种不同的世界排行榜)。
实现世界排行榜功能,需要使用云开发,用到其中的云函数以及云数据库,如果你对云开发还不了解的话,可以先学习一下下方的内容。
以上两篇教程是阅读本篇教程的基础,你需要知道云函数如何创建,如何在小游戏制作工具中调用云函数,如何使用云数据库,唯一的用户标识 openid 如何获取等等。
在之前写云函数教程的时候,在微信小程序的后台直接申请开通云开发服务,拥有免费的资源配额,对于很多的小游戏来讲,免费的配额基本上就够用了。但是现在免费的“羊毛”已经没有了,想要使用云开发服务,必须要付费,价格最低的个人版目前是 19.9/每月,现在云开发后台可以领取一张 20 元的新人优惠券,相当于还是可以免费使用一个月的。至于这个新人优惠券会送多久就不知道了,想要体验云开发功能的朋友可以先去领个优惠券,免费先用一个月试试。
如果你对云函数以及云数据库有了解了,那么接下来我们就来看一下如何利用它们在游戏中实现世界排行榜功能。
首先来看一下排行榜功能的实现流程。
如图,玩家进入游戏后,通过授权获取玩家的昵称和头像(因为在排行榜中需要显示这些用户信息),如果玩家同意授权的话,我们就能够获得昵称以及头像的 URL (这是一个链接地址,每一个微信头像都对应着一个唯一的链接地址,拿到这个链接地址也就等同于拿到了头像的图片)。
获取到用户信息后,调用云函数,将用户的这些信息存储到云数据库中。头像和昵称这些信息只需要获取一次,以后就会保存在云数据库中,所以用于存储这些信息的云函数也只需要在用户授权后调用一次即可。
接着,在游戏期间,使用另一个云函数将玩家的游戏数据(得分,关卡等)存储到云数据库中。
当玩家想要查看排行榜的时候,通过 openid 这个唯一的用户标识,去云数据库中查询满足指定条件的排行数据,云函数把查询到的数据返回给客户端,客户端根据这些数据显示世界排行榜。
整个流程就是这样了,我把它分成三个阶段:上传用户信息,上传游戏数据,查询并显示排行榜。接下来,我们就逐个的看一下每个阶段的实现。
上传用户信息
在这个阶段需要做这样的几件事:让用户授权允许游戏使用昵称和头像信息,调用云函数将获取到的用户信息存储到数据库中。
获取用户信息
微信小游戏制作工具提供了“获取用户信息”的插件,位于素材库中“插件”中,选择这个插件导入到项目中。
导入之后,你会看到一个大黄色的“获取用户信息”的按钮,这就是这个插件了。
除此之外,这个插件还提供了 4 个积木块,这个我们稍后用到的时候会解释。
有一点儿需要注意的是,这个插件并没有调整大小的属性,如果你想要调整精灵图片的大小,只能通过替换图片来实现。
接着,添加一个精灵用于显示用户的头像,添加一个基础文字,用于显示用户的昵称。
来看一下获取用户信息的积木逻辑,我们把它放在 user 精灵上。
其中关于用户信息中的为什么要使用 nickName,avatarUrl 这两个字段,可以参考微信开发者官方文档。
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/UserInfo.html
最后,点击“预览分享”,直接在手机上测试一下是否能正常获取到昵称和头像。
到这里,第一步获取用户的昵称和头像信息就完成了,接下来我们前往云开发平台,实现存储用户信息的云函数。
这是一篇付费的图文教程,内容非常的详尽,可以帮助你在游戏中实现一个或者多个世界排行榜功能,剩余教程内容可前往公众号中继续阅读。
https://mp.weixin.qq.com/s/zOI8zu7vSNFJ0HYVqrC-eA
---
欢迎关注我的公众号【小蚂蚁教你做游戏】,每天学点儿游戏开发知识。
欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。
我用的时候,根本就不会弹出获取昵称头像那个页面