纯JS的微信小游戏排行榜(精减版本)

纯JS的微信小游戏排行榜

如果使用游戏引擎生成的子域大小在500K左右,对于微信小游戏来说还是太大了。
而使用这个做排行榜子域才9K。相当友好。

原版发表在:微信小游戏排行榜demo,纯微信api实现,可直接使用

此版本是在原来版本上进行精减只留一个好友得分排名。
原版中每次提交分数都会把上一次分数覆盖,没有做任何决断
此版本在提交分数前有判断是否比上一次得分好。只选择最好的一次分数上传。
此版本对排行榜数据排序有两种方式,默认是从高分到低分
也可选择从低到高的顺序,如最快完成游戏的时间,则花的时间最短排在最前面。(游戏类型可以是 数独,拼图,答题等等,看谁最快完成)

使用方式
首先加载这个排行榜的节点并设置成常驻节点

var myself=this;
cc.loader.loadRes("prefab/rankList",(err, prefab)=>{
	if(err){
		console.log(err)
		return;
	}
	// 设置成常驻节点
	let ranklistNode:cc.Node = cc.instantiate(prefab)
	cc.game.addPersistRootNode(ranklistNode)
	ranklistNode.x = cc.winSize.width*0.5
	ranklistNode.y = cc.winSize.height*0.5
	myself.wxRankList=ranklistNode.getComponent("wxRankList");
})

上传分数
this.wxRankList.sumbitScore("key",分数,true);
显示排行榜
this.wxRankList.showRank("key","游戏",true);

测试可以使用下面两个
//每次随机上传一个分数,只有比上次高的分数才会更新于到排行榜上
this.wxRankList.sumbitScore("maxToMin",Math.random()*100,true);
//显示排行榜
this.wxRankList.showRank("maxToMin","游戏",true);

默认是一页排6行。这个可以修改index.js中的值来改变

/**

  • 排行榜一页数量注意
  • 排名总高度是600,既是 PAGE_SIZE*ITEM_HEIGHT=600;
  • 如果想要更高需要更改perfab/rankList中的显示对象
    */
    const PAGE_SIZE = 6;//排名行数
    const ITEM_WIDTH = 478;//排名宽度
    const ITEM_HEIGHT = 100;//排名单行高度

6x100结果显示


10x60结果显示

原码下载地址

1赞