Unity实战之王者荣耀段位计算

简介: Unity实现王者荣耀段位计算

前言

嗨咯,好久不见呐,五一劳动节到了,首先祝大家节日快乐呀~其次,做好防疫保护哦。无聊的话,来看看小女子的文章吧,包你感兴趣!

背景

最近开始接触PVP系统,以前都是做一些小功能,从心底来说,这种PVP系统是对我的挑战。虽然不是很有信心能做好,但是既然有这个机会,我还是愿意尝试一下。
正巧最近王者的段位也到达了一个高度,给大家炫一下~~
在这里插入图片描述

段位描述

这不,一来就涉及到了段位。段位分为大段位和小段位。
大段位从低到高分别是:青铜,白银,黄金,铂金,钻石,大师,王者
小段位从低到高分别是:Ⅴ,Ⅳ,Ⅲ,Ⅲ,Ⅱ,Ⅰ

配置数据

策划配置数据如下:

lcoal config = {
    [1] = { name = "青铜",score = { 100, 300, 500, }, },
    [2] = { name = "白银",score = { 900, 1200, 1500, }, },
    [3] = { name = "黄金",score = { 1800, 2500, 3600, }, },
    [4] = { name = "铂金",score = { 5000, 6000, 7000, 8000, 9000, }, },
    [5] = { name = "钻石",score = { 10000, 11000, 12000, 13000, 14000, } },
    [6] = { name = "大师",score = { 15000, 16000, 17000, 18000, 19000, }},
    [7] = { name = "王者",score = { 20000, }},
}

配置数据存储

思路:为了方便使用,我们会将上面的配置信息转化为浅显易懂的格式,使用二维数组表示,一维代表大段位,二维代表小段位。这样,当我们知道大段位和小段位时,就能很方便的取数据。
需要注意的是,小段位的高低和数值大小是相反的。可以通过该取大段位对应的小段位数量-当前处于第几小段位+1=小段位名对应的下标。
例如:

--从配置可以看出,对应的是铂金Ⅳ
local stage = {"Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ"}
local max = 4
local min = 2
--获取小段位名
local minName = stage[#config[max]-min+1]

知道了小段位名的获取方法,就能拼接出玩家的整体段位名。
整体段位名 = 大段位名..小段位名
将配置格式转化为程序使用格式(二维数组)

local stageData = {}
for i,v in ipairs(config) do
    stageData[i] = {}
    for a,b in ipairs(v.score) do
        stageData[i][a] = {}
        stageData[i][a].name = v.name..stage[(#v.data5)-a+1]
        stageData[i][a].score = b
    end
end

段位值转换

为了方便,我们不会去保存一个大段位值,再去保存一个小段位值,我们通过使用公式计算得到一个值,我们只需要知道这和个值,即可算出大段位值和小段位值:

section=max*100+min
section:玩家段位数据
max:大段位
min:小段位

因为我们保存的配置格式是通过大段位和小段位保存的,那么,我们如何根据玩家实际段位取得对应的大段位和小段位呢?
其实很简单的,通过运算符操作:除法实现

local max = math.modf(section/100)
local min = max*100 - 100

获取段位信息

获取了大段位和小段位之后,就可以直接取数据了
方法如下:

stageData[max][min+1]

后记

玩游戏的小伙伴,快来围观吧~顺便炫出你们的段位

相关文章
|
图形学
unity实战之弹幕功能
使用unity也可以实现追剧弹幕效果
|
5月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
51 0
|
5月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
41 0
|
5月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
56 0
|
5月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
185 0
|
5月前
|
C# 图形学
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
172 1
|
5月前
|
数据可视化 C# 图形学
【Unity 3D】图形界面GUI的讲解及在C#中实现用户登录界面的实战(附源码)
【Unity 3D】图形界面GUI的讲解及在C#中实现用户登录界面的实战(附源码)
72 0
|
9月前
|
图形学
【Unity实战系列】如何把你的二次元老婆/老公导入Unity进行二创并且进行二次元渲染?(附模型网站分享)
【Unity实战系列】如何把你的二次元老婆/老公导入Unity进行二创并且进行二次元渲染?(附模型网站分享)
362 0
|
9月前
|
持续交付 图形学 开发者
【Unity实战系列】Unity的下载安装以及汉化教程
【Unity实战系列】Unity的下载安装以及汉化教程
214 0
|
9月前
|
图形学
Unity UGUI如何计算drawcall
Unity UGUI如何计算drawcall