微信云开发技术可以让我们免费方便的使用服务器的部分功能,对于微信小游戏非常有帮助,在微信的文档中使用方法已经写得非常详细明确,大家可以前往查看
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html
本教程只针对新人,因为我自己就是个新人,如有错误,请大家批评指正

每个小游戏可以配备两个云开发服务器,推荐一个用来测试,一个用来发布

首先我们把做好的游戏构建、运行,在微信开发者工具中打开云开发,如图所示

打开后的页面如下,输入环境名称,自动生成一个环境ID

点击确定,进入云开发控制台,这里我们就可以从上面看到它的功能:数据库、存储管理、云函数

首先来试一下云函数功能,创建一个云函数,查看一下基础信息

在图中可以看到提交方法,按照步骤操作 ,加入这一行代码,左边新建一个文件夹

左边新建Node.js函数,取个名字,比如“getopenid”,右边可以编写云函数代码,也是js代码,只不过是运行在云开发环境的js代码

完成后,右键上传部署,之后再次构建就可以直接使用了,无需再次重复这些步骤

小游戏里调用的方法
//初始化云服务器
wx.cloud.init({
traceUser: true,
env: 'box-8e6f64'
})

//调用云函数
wx.cloud.callFunction({ 
name: 'getopenid',
complete: res => {
cc.sys.localStorage.setItem('openid', res.result.openid);
}
})

利用这种方法就可以取到openid了

用户上传分数的时候可以利用openid查询一下是否已存在记录,避免重复上传

数据库的操作方法:
现在云函数控制台点击数据库创建自己需要的表,无需创建字段,只要有名字就可以,比如worldrank

然后就可以在小游戏里进行增删改查操作了,
const DB = wx.cloud.database() 
DB.collection('worldrank').where({
_openid: cc.sys.localStorage.getItem('openid'),
})
.get({
success(res) { 
//console.log(res.data[0]._id)
if(res.data.length>0){
DB.collection('worldrank').doc(res.data[0]._id).update({ 
data: { 
score: myscore 
},
success(res) {
}
})
}
else{
DB.collection('worldrank').add({ 
data: { 
score: myscore
},
success(res) { 
}
})
}
}
})
通过小游戏上传的数据会自动增加一个_openid字段,存放用户的openid,也就是说上面这段代码上传到数据库后,worldrank表里存放的是{'id':'自动生成','_openid':'用户openid','score':'用户得分'}

更多数据库使用方法请参考官方文档

有了玩家的数据,然后就可以进行制作排行榜了
查询数据库,将数据排序后发送到开放数据域,开放数据域接收后就可以直接绘制了
DB.collection('worldrank') .limit(20)
.orderBy('score', 'desc')
.get({
success: function(res) { 
wx.postMessage({ 
rankdata: res.data, 
});
}
})

limit(20)表示只能取20条数据,在小游戏端查询数据库最多只能查询20条记录,如果把调用方法写到云函数里,则可以查询到最多100条数据,官方有例子可以循环多次取出所有数据,但是我们只做排行榜的话100条数据已经足够了。

开放数据域接收到rankdata,也就是上面的{'id':'自动生成','_openid':'用户openid','score':'用户得分'}这样一组json数据
然后通过getUserInfo获取用户的头像、昵称信息,绘制排行榜,具体代码如下
for(var i = 0; i < rankdata.length; i++){
var list = [];
var score = rankdata.score;
list.push(rankdata._openid); 
wx.getUserInfo({
openIdList: list,
success: (userRes) => { 
let userData = userRes.data[0];
var avatarUrl = userData.avatarUrl; 
var nick = userData.nickName;
},
fail: (res) => {
this.loadingLabel.getComponent(cc.Label).string = "数据加载失败,请检测网络,谢谢。";
}
})
}

写得比较匆忙,欢迎补充、交流和吐槽

小游戏样例,请忽略这粗糙的美工

微信云开发使用教程,实现世界排行榜等功能相关推荐

  1. 【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏

    开始前,请先完成圆梦宝典中宫格导航的开发,详见 [微信小程序-原生开发]实用教程 07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字) https://blog.csdn.net ...

  2. 微信小程序云开发新手教程——关于多人云开发和git版本管理

    多人团队开发微信小程序项目时,如何更好的进行团队协作是一个关键问题.接下来的这篇文章里,主要以项目的管理者和项目参与者两种身份,介绍了云开发初始环境的配置的具体方法,以及通过git进行团队的版本管理. ...

  3. 微信云开发:组件的使用

    组件大致分为两种,一种是微信云开发库内自带的组件如image,video等媒体组件,input,form表单等数据组件等等,另一类则是需要拓展的或者自定义的组件,先前的文章应该有讲过组件的位置感兴趣的 ...

  4. cocos creator 部署微信云开发

    (这仅为小弟的学习笔记,不作为教程,如有错误请大佬指出) cocos creator中通过调用微信的接口去获取用户授权的信息,之后云函数把用户数据保存至云数据库,再从数据库回调到cocos端处理.比如 ...

  5. Unity微信小游戏使用微信云开发记录

    最近项目上架微信小游戏,首先使用了微信官方sdk转成微信小游戏,官方地址如下: https://github.com/wechat-miniprogram/minigame-unity-webgl-t ...

  6. 微信程序开发系列教程(二)微信订阅号+人工智能问答服务

    我的前一篇文章**微信程序开发系列教程(一)**开发环境搭建 已经介绍了微信服务器的开发环境搭建.本文作为开发系列的第二篇文章,介绍如何给您的微信订阅号开发一个最简单的问答服务,非常好玩. 这个系列的 ...

  7. uniapp 微信云开发静态网站和云函数跳转小程序

    uniapp 微信云开发静态网站和云函数跳转小程序 云开发静态网站的创建 云函数及copy-webpack-plugin 安装copy-webpack-plugin可能遇到的问题 静态网站和云函数的搭 ...

  8. 微信云开发-事件触发器的使用

    文章目录 一.在哪用 二.怎么用 三.问题 四.摸索 五.关于cms的webhook 六.我对触发器函数文件夹的架构想法 小结 微信开发文档对这个部分的使用资料很少,一个demo都没有,全靠开发者去尝 ...

  9. 基于微信云开发的商家转账至零钱

    基于微信云开发的商家转账至零钱 相关简介 开通功能 阅读文档 技术框架 配置环境 编写代码 注意事项 相关参考 相关简介 本篇文章主要介绍如何通过微信云开发的云函数实现商家转账到零钱.(让那些没有服务 ...

最新文章

  1. 混合颜料(求线性组的基)
  2. 如何让老Mac机支持USB安装Windows
  3. ListView, GirldList 等setCurrentItem 不立即刷新
  4. System Memory Management in Windows CE .NET
  5. SQL Server 2005客户端安装和端口设置
  6. Postgres主进程文件—postmaster.pid
  7. BRD、MRD 和 PRD 之间的区别与联系有哪些?
  8. oracle参数优化
  9. 实现一个简单的银行转账操作
  10. eclipse安装cppcheck
  11. mfc 学习的第一天
  12. Win10 Powershell ssh到WSL
  13. 1.1 线性方程组(线性代数及其应用-第5版-系列笔记)
  14. 推荐一个好用的百度文库在线免费下载文档网站
  15. 2021年中国冰雪旅游行业市场现状分析,“三足鼎立、两带崛起、全面开花”新格局形成「图」
  16. android 虚拟按键root,(免root)虚拟按键手动修改方法
  17. Matlab Shift Arithmetic模块
  18. python readcsv读取gbk编码文件_python读写csv文件
  19. 如何展现两极化数据,Excel柱状断层图不二之选
  20. 车载网络测试 - 车载以太网 - 网络配置方法

热门文章

  1. 用python查看某一文件夹下的所有图片哪些不是3通道
  2. 介孔二氧化硅纳米 (二氧化硅水凝胶蛋白质/蛋白质包裹二氧化硅纳米粒/纳米二氧化硅包裹荧光蛋白)
  3. OpenCV手部图像预处理
  4. 想进一线大厂?2021年最详细Java多线程面试问题集锦(含答案),看完可以和面试官扯皮了!
  5. http、https、Socks代理知识汇总
  6. SQLiteStudio
  7. SQL 流程控制语句 之五 RETURN语句介绍
  8. BeautifulSoup爬取虎扑步行街信息到Mysql
  9. 微信小程序原生开发流程 - 00
  10. 电路噪声的产生以及抑制噪声的方法