在每局游戏结束时,用来显示玩家 在好友中的排行,这个需要在微信提供的开放数据域中完成。
微信为防止数据外泄,特地提供了开放数据域。开发者只能在子域获取数据,不能上传到外部。
微信开放数据域中 计算好排行榜数据,并显示,渲染到主域的页面上。
需要在主域画布下,创建一个和画布大小相同的空物体,挂载组件
子域的画面 就是通过该组件渲染到挂载该组件的物体上,有点类似Unity 的RawImage。
这里使用的是2.0.10版本,子域工程的按钮,在测试的时候 无法点击。所以在主工程相同位置,制作了一个按钮,来代替子域中对应位置的按钮。子域和主工程画布大小一致。
通过该组件 屏蔽事件的点击。
在主工程中,通过 wx.postMessage 向子域传递消息。子域中 通过wx.onMessage 接收主域的消息,根据消息类型
做出对应的处理。
1.提交游戏分数:先通过wx.getUserCloudStorage 获取用户的云存储
通过wx.setUserCloudStorage 提交玩家的成绩
2.获取好友成绩,处理成排行榜
微信接口:wx.getFriendCloudStorage
获取到数据,是没有顺序的,需要自己经过排序,再来显示到排行榜上。
3.超越好友提示功能
我们可以在游戏一开始 获取到好友分数和头像,分别用数组 存起来,当你的分数增加的时候,和数组中最后一名玩家
比较,每次超越 一名好友,将该好友从数组尾部弹出,每次重新开始游戏,更新重新获取数据。
4.分享
分为主动分享 和 被动分享
被动分享:微信小游戏右上角菜单里面
通过 wx.showShareMenu 接口,显示分享功能,
通过 wx.onShareAppMessage 接口 设置 分享主题title,以及分享的图片,传入图片的地址
主动分享: 用户主动拉起好友 通讯录 分享:
wx.shareAppMessage 接口