初学者用COCOS CREATOR写一款飞机大战游戏(4)

在之前的文章里戒戒也是讲了如何加载关卡列表,今天我们来说一说加载玩家排行榜,一般来说想要有排行榜功能的话必须要有服务器,好在微信给小程序、小游戏等功能推出了云开发服务,所谓云开发就是微信帮我们把服务器建好了,当然这个是需要收费的。

云开发开通过后就会有环境变量ID,然后我们在project.config.json 文件中定义好相关目录:  "cloudfunctionRoot": "cloudfunction/",

由于cocos creator 每次构建会把build下面的所有文件都清空,所以云开发的文件夹最好放在外部,我们指定miniprogramRoot的路径:"miniprogramRoot": "wechatgame/",这样每次构建就不会把我们的云函数相关内容删除了。

下面就到了写云函数的环节,我们先来看一个比较简单的云函数:

const gamedata = db.collection('XXXX');//先获取集合

    let _isHas = await gamedata.where({

        openid: wxContext.OPENID // 需要过滤查询的内容(微信上下文OPENID数据)

    }).get();

    if (_isHas.data.length == 0) {//这里每个玩家的openid是唯一的,也就是可以用这个来做主键

        let _isAdd = null; // 声明一个变量,用于存储add()的结果

        let addData = {    // 声明要添加的数据(2条)

            // 存储格式

            openid: wxContext.OPENID, // 键:openid,  值:微信上下文中的OPENID数据

            score: event.score,

            nickName: event.nickName,

            avatarUrl: event.avatarUrl,

            gameDate: event.gameDate

        }

        _isadd = await gamedata.add({

            data: addData

        })

        return {

            code: 9,

            res: _isadd,

            data: addData

        };

    }

 先查询集合内是否有这个玩家的记录,如果没有就向集合中添加记录,如果有的话就更新内容!

在脚本中,我们先获取一下缓存中的分数,如果比之前的高的话则更新,然后判断是否是微信平台。 

 如果是微信平台的话则调用云函数,传入相应参数,可以再complete里做一些成功后的返回操作,比如谈个提示框之类的。

 在需要获取排行榜的地方也是同理,通过调用云函数完成。这里有一点需要注意的是,这里需要用到异步/同步操作,等数据返回之后我们再赋值,这样就不会报错。

好了今天就先说这么多,对了记得来体验一下这款小游戏哦,打不过的话一定要升级装备!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值