用户:小鱼yuzifu查看:70 回复:107 评论:70 创建时间:2021-07-30T15:10:59
| Hi,everyone.小鱼又回来啦!!!快快欢迎!
开始教程前先放上两张对比图

论美观程度和与自身UI适应程度来说的话,哪个更好看点?第二个!
再来一个!

论从小到大来排序来说的话,哪个更直观方便点?第二个!
你甚至可以在结算页面显示你的排名和在你前后两人的成绩!

怎么样?是不是技术力超高!(屑玩意技术超低)其实我这种自制排行榜基本大部分人可以轻松看懂,尤其对于一些萌新。用上后自己的作品质量将会更上一层楼!
所以现在让我们开始自制排行榜的制作教程吧!(这期教程我们将使用云列表制作)
先让我们构思下,一个排行榜在显示排名时将要经历哪些流程?

大概就这些(可能有部分错误,可指出),那我的排行榜运行大概也就是这种模式。
准备:一个云列表(存放所有人数据),一个私有云变量(用于同步个人数据和个人排行榜数据),n个列表(用于处理从云列表上下来的数据,并在里面生成最终的排行榜排名),m个变量(用于辅助列表进行排序),一个角色(废话!)
在我的自制排行榜内这种流程大概分5步(初始化列表——>从云列表喵解数据存放到两个列表——>删除列表内重复数据——>对剩下的列表数据排序——>打印列表内最终数据),概括为删除、分解、防重复、排序、打印
1.删除
删除在这就是初始化的意思,因为云列表的数据会变,所以更新数据时会不初始化会导致严重的数据重复,甚至程序崩溃!
这里删除的都是我们等会要用到的列表,大家可以按着图上来看看要创建哪些列表

2. 分解
这个分解相信大家也知道该怎么分解,就是重复执行云列表的长度,运用两个变量,一个遍历云列表的每一项,另一个从后往前遍历每一项中的特殊符号的位置(特殊符号是分隔用户名和成绩的一个符号,想用什么都行,但要保持所有列表中特殊符号一致)并将名字和分数拆解到两个不同的列表方便后续调用。

3. 防重复
由于网络问题,数据在上传时可能会重复上传(原因:云列表数据未初始化完全,导致程序以为个人数据不存在,从而重复上传),从而导致在打印时会出现两个相同的用户名占了两个排名。
这肯定是不能存在的,所以这里将名字列表里相同的名字删除至一个,分数列表中相同位置的数据同时删除,再进行下一步处理

4. 排序
排序可以说是积木用的最多的(不算上打印),这里使用的方法是重复执行分数列表的长度,一遍遍获取当前分数列表中最大或最小的分值,轮完一遍后将最终数值放入另一个列表(这里叫重排序分数)末尾,对应名字也放入另一个列表(这里叫重排序名字),重复下来最终你会获得一个排好序的两个列表(这里事实上已经可以当一个排行榜使用了)(两个储存列表到后面是有用的)

ps:这里下面有小鱼曾经使用的排序方式,可以看看下面的跟上面的劣势是什么(推荐用上面那个)

5. 打印
wow,恭喜你已经制作好了一个排行榜!现在我们来看看可以调用的方式吧!

加上这个可以获取自己的排名和数据(name指自己的用户名)

用这个可以实现显示你的排名和在你前后两人的成绩

实际上调用数据的方法还有很多,这里只是列举了几种,因为现在排行榜的所有数据都在你的手上,所以你想怎么调用就怎么调用!
在云列表添加/修改数据
虽说前文讲了制作自制排行榜,但是云列表才是重中之重!所以想实现真正的数据操作还是要到云列表里操作。
运用这串积木则行(name为用户名,得分为最高分)
其中修改是替换那串,添加时添加那串(实在不会用可以只用添加。。。到。。。第一项的)
建议刚开始游戏就用如果判断是否添加“添加”那串,打破最高分时用替换那串(注:只有中间的判断可改,其它一个也不要动)
好了,自制排行榜也写好了。希望对一些人的作品创作有一些帮助!
这里放上链接,也可以去看看:https://shequ.codemao.cn/work/92810220
玄离小吃货_已退我来说说小鱼提问的优劣:新的:1.新版的排行榜可以做到按照实际数值来排行,不会出现数值不清,乱排等现象。
旧的:1.旧的排行榜限定了数值,如果拿图片中的代码举例子,那么一旦超过了9999这个数,系统的判断就会出现失误【亲身经历好吧】,很容易就会造成大数在小数后面,甚至乱排,错排,并且如果是首富类的游戏,9999根本微乎其微,养成系哪个不是上亿的数值?
2.旧版的排行榜如果按部就班的把重复执行的次数改为比目前游戏【这里指大多数首富类游戏】中最高的数值还有多一点的数,啊,怎么说,运算时间可能比你吃饭时间还要长,而且会出现卡顿等情况【亲身经历好吧】!
总结:小鱼NB!
点赞1
评论