微信好友排行榜 最简教程 一

      在写微信小游戏排行榜的时候遇到个问题,就是如果建立个cocoscreator工程作为子域的话占用空间就会变得非常大。因此自己看了一下别人写的,只需要一个js文件就可以描绘的好友排行榜。过程遇到和解决了一些问题整理出来,让新手也可以快速做出自己的好友排行榜。这里写的很详细是之前看别人写的都是一知半解的去看,看了许多例子才理解怎么去写,希望 能帮到大家。

在这之前先看看效果

或直接到游戏内体验一下 滑动  的效果

 

首先概念如下

主域=主工程(游戏工程)
子域=子工程(开放数据域)

掌握几个要点:
第一、微信数据获取。
第二、主域与子域之间的通信。
第三、子域怎么描绘控件。

第一、微信数据获取。官网文档地址:微信API
    需要用到的微信API,注意查看数据结构。         

//上传玩家的数据,例如我要上传玩家的关卡为1 ,这个接口可以在非子域调用       
wx.setUserCloudStorage({ KVDataList:[ {key:"level" ,value:1 } ] ,success:res=>{ }  })

//获取好友某个字段的信息列表,只能在子域调用 ,参数keyList 表示需要获取哪些字段的数据,例如我这里只存了玩家的关卡信息,那么这里只填写"level"
wx.getFriendCloudStorage({keyList:[ "level" ] ,success:res=>{ res.data } })

 返回数据结构
        res.data:[ 
            {"nickname":"玩家名称" , "openid":"openid" , "avatarUrl":"头像链接",  "KVDataList":[ { "key":"level" ,"value":"1" } ] }
        ]

第二、主域与子域之间的通信。
    主域与子域之间通讯也是通过微信提供的接口。这里主域与子域之间的消息传递为单向的,只能从主域发送到子域。
    在主域里

wx.postMessage({ action:"showFriendsRank", message: "展示好友排行榜" , otherParam:"其他参数可以通过key-value的形式定义传过去" });

    在子域里接收    

wx.onMessage(msg => {
            switch(msg.action)
            {
                case "showFriendsRank":
                    //接收到指令 请求数据 进行描绘排行榜
                    break;
                
                default:
                    console.log(`未知消息类型:msg.action=${msg.action}`);
                    break;
            }
        });


 第三、子域怎么描绘控件。
     在子域先拿到子域画布ctx才能进行描绘内容。

var canvas = wx.getSharedCanvas();
var ctx = canvas.getContext('2d');

    设置画笔颜色、字号、字体、对齐方式等

ctx.fillStyle = "#eaeaea";
ctx.font = "40px Helvetica";
ctx.textAlign = "center";
ctx.baseLine = "center";

绘制内容   

ctx.fillText("内容文本", x, y ); //绘制文本label。 x,y 坐标
ctx.fillRect(x , y ,Width, Height); //绘制矩形
ctx.clearRect(x, y, Width,Height); //清清除一个矩形区域
//加载绘制一张图片
const avatarImg = wx.createImage();
avatarImg.src =  "https://wx.qlogo.cn/XXXXXXXXXX";
avatarImg.onload = () => {
    ctx.drawImage(avatarImg, x , y  , width, height);
};

实战请看下一章   
微信好友排行榜 最简教程 二

欢迎交流一起学习

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值