硬核计算公主连结的战斗机制 包含各类实例计算

2020-10-03 17:50:56 神评论

17173 新闻导语

必要基础知识: 1,所有角色都有设定好的普攻距离,技能起手和循环模式。 例如,布丁的普攻距离为125,起手:普攻-普攻-1技能-普攻-2技能,循环:普攻-普攻-1技能-2技能。 2,部分角色技能会对敌方造成范围伤害或者对己方有范围增益效果,这些范围也有固定的值。 例如,魅魔1技能

109.png

必要基础知识:

1,所有角色都有设定好的普攻距离,技能起手和循环模式。

例如,布丁的普攻距离为125,起手:普攻-普攻-1技能-普攻-2技能,循环:普攻-普攻-1技能-2技能。

2,部分角色技能会对敌方造成范围伤害或者对己方有范围增益效果,这些范围也有固定的值。

例如,魅魔1技能的范围为100。

3,战场大小为1080,入场时,每一方的角色之间都有200的距离,整张地图大小为1080*2=2160.

例如,进攻方一号位到五号位的距离为800。

4,角色移速为450/帧数。

本文考虑fps=60,所以角色最小步数为7.5/帧。换句话说,角色每一步走的距离都是7.5的整数倍。

5,每个角色都有碰撞半径,碰撞半径为125。

战斗原理:

1,进攻方和防守方已相同的速度从地图两边开始入场。

2,当普攻距离中出现敌方单位,就停止移动,并进入技能起手和循环。

3,普攻距离内所有敌方单位阵亡,继续移动。

4,重复2和3,直到一方全灭或者倒计时为0。

ps:嘲讽的角色超出普攻距离,那么嘲讽会失效。

实例计算:

为了方便理解,()代表普攻距离,[]代表判定距离,{}代表位置坐标

实例1:

我方:猫剑(215),偶像(160),黑骑(135),空花(130),布丁(125)

敌方:狐狸(795),暴击弓(705),猫剑(215),狼(165),黑骑(135)

首先让我们考虑双方一号位还在行动中的情况

根据停止的判定位置(以各方的一号位为准,超过为正,没超过为负)

公式为:普攻距离-与一号位的距离+碰撞半径125

我方:

猫剑[-460],偶像[-315],黑骑[-140],空花[55],布丁[250]

敌方

狐狸[120],暴击弓[230],猫剑[-60],狼[90],黑骑[260]

因为都是双方一号位先停止,所以不会对双方后续角色造成影响。

考虑双方一号位都是从战场两侧边缘入场,我们以地图最左侧边缘为原点。

敌方黑骑先停止,从入场到停止需要(2160-260)/(7.5*2)=126.66帧

取整127帧,敌方黑骑移动了127*7.5的距离,坐标为{1207.5}

我方角色的停止位置均会以敌方黑骑为基准。

这里就不需要考虑入场情况了,直接计算位置就行了。

我方布丁需要经过的路程为1207.5-125-125,为127.66帧的距离,取整128帧

所以布丁的坐标为{960},比黑骑慢一帧行动。

同理最后得到所有角色的位置坐标

我方:

猫剑{872.5},偶像{922.5},黑骑{950},空花{955},布丁{960}

敌方:

黑骑{1207.5},狼{1250},猫剑{1300},暴击弓{1780},狐狸{1880}

我们来分析位置的差值

暴击弓与我方布丁=825<705(普攻距离)+125(碰撞半径)

暴击弓与我方空花=830<705(普攻距离)+125(碰撞半径)

暴击弓与我方偶像=855>705(普攻距离)+125(碰撞半径)

最终结果:空花可以嘲讽到暴击弓,而偶像嘲讽不到暴击弓

与截图情况相符合。

特别的让我们来看一下狐狸这个点

狐狸与我方布丁=920=795+125

狐狸与我方空花=925>795+125

所以狐狸不会吃空花的嘲讽,所有攻击百分百会打中布丁。镜华只打布丁不打空花的原理也是一样,笔者就不再算一遍了。

实例2:猫拳被锁定致盲

镜子和狐狸的技能会致盲距离自己第二近的敌方角色,但是如下特殊情况下,镜子和狐狸会锁定猫拳致盲。

情形1,三号位猫拳被镜子致盲

我方:猫拳(200),裁缝(195),春妈(159),

敌方:五号位 镜子(805),猫拳(200),羊驼(105),

一样的我们先来计算谁先停止,因为羊驼的关系,猫拳实际上是一号位,镜子实际上是四号位

我方:猫拳[-75],裁缝[120],春妈[284],

敌方:镜子[330],猫拳[325]

可以看到镜子是最先停止的,敌方猫拳是第二个停止的

镜子从开始到停止需要(2160-330)/15=122帧,敌方猫拳需要123帧

122帧时镜子{1845},敌方猫拳{1245},

123帧时镜子{1845},敌方猫拳{1237.5}

之后我方就会根据敌方猫拳的位置,停止移动并开始攻击。

具体的时间和位置分别是:

128帧时春妈{960},149帧时裁缝{917.5},175帧时我方猫拳{912.5}

情形2,二号位猫拳被镜子致盲

当我们把春妈改成裁缝时,

我方:猫拳(200)[125],裁缝(195)[320],羊驼(105),

敌方:五号位 镜子(805)[330],猫拳(200)[325],羊驼(105),

同理计算得到

122帧时镜子{1845},123帧时裁缝{922.5},敌方猫拳{1237.5},

149帧时我方猫拳{917.5}

根据镜子的攻击模式,在停下做完抬手动作之后,便是释放2技能致盲距离自身第二近的敌方角色。这个抬手动作到释放技能的时间是200/7.5=26.66帧,取整是27帧。

镜子停下的时间是122帧整,所以抬手攻击时的时间是148.66(取整149)帧,情形1裁缝停下的时间是149帧整,情形2猫拳停下的时间是148.33帧。虽然取整都是149帧,但是实际会有细微的差别,因为现在计算使用的是60fps,这个差别当帧率提高时会更加明显。

笔者觉得是代码中停下攻击的角色和正在行动的角色不在同一个队列或者堆栈里面,而检索距离自身第几近的敌方角色之类的应该是在同一个队列或者堆栈里面检索的,黄骑起手充电也有类似的情形。黄骑充电有大佬归纳过一个比较笼统的结论,实际上是一般只要角色在黄骑就位前停下来,黄骑起手就百分百充不到这个角色,他优先检索了正在移动的角色。至于理由,大概是因为停下来准备攻击的角色马上就会获得tp,而移动中的角色tp必定为0。

回到正题

情形1中,停下攻击的角色只有春妈,检索不到第二个角色。而在正在移动的队列或者堆栈中,猫拳正好是继裁缝之后的第二个。

情形2中,裁缝和猫拳已经停下来攻击了,停下来攻击的角色有两个,检索到猫拳正好是继裁缝之后的第二个。

被狐狸致盲也是相同的情形,但是60fps区分度不够,换成更高的帧率会得到比较直观的结论。

以上是笔者个人的看法,不知道大家有没有别的想法?欢迎讨论。

实例3:日服有反应过手机横向分辨率低于某个值会挂树的情况

正常来说配置够的话,分辨率对帧率是没有影响的,影响比较大的应该是地图的大小。

我用双方都是布丁(125)举例子

正常比如说是2160大小的地图

到达指定位置的时间是

(2160-250)/15=127.33

取整128帧

两边布丁相差

2160-128*15=240

但是如果你地图变小了

比如变成了2155

那么到达指定位置的时间是

(2155-250)/15=127

布丁相差

2155-127*15=250

如果地图变大变成2165

到达指定位置时间为127.66帧,取整128

布丁相差245

当然实际上因为分辨率变化,地图可能并不正好差5,但是差多少其实无所谓。主要是除以速度的余数是多少的问题。

这个余数可以是0,1/3,2/3

当这个发生变化,会导致双方实际上更近了。这个值具体为0,5,10。

这个距离变化也直接导致可能在这个分辨率你不会被打到,但是换了一个分辨率你被打到了。

这个解释你们看靠不靠谱。

实例4:面对妹弓队(羊驼 黄骑 深月 妹弓 镜子)时,扇子的750范围的1技能为什么会打不到700距离的妹弓

一样的我们先给出所有人的各项数据。

我方:

二号位扇子(415)[340],一号位黑骑(135)[260]

敌方:

镜子(805)[330],妹弓(700)[425],深月(565)[490],黄骑(405)[530],羊驼(105)

根据这组数据我们能看到

因为羊驼后入场的关系,敌方全体都比我方黑骑先就位,开始攻击。所以站位与黑骑最终位置无关。

而我方扇子和黑骑都比对方黄骑后就位,最终的站位是以黄骑停下的位置为基准点的。

三号位四号位的扇子的判定距离必然小于二号位的扇子,还是会比黄骑后就位。

下面开始计算各个角色的最终就位时间和位置。

首先计算最先就位的黄骑

时间是(2160+200-530)/(7.5*2)=122帧

此时位置为2160-(122*7.5-200)=1445

同理求得敌方所有单位的数据

122帧 黄骑停,坐标{1445}

125帧 深月停,坐标{1622.5}

129帧 妹弓停,坐标{1792.5}

下面我们来计算扇子的最终位置。

扇子的时间是(1445-340)/7.5=147.33帧,取整148帧

最终位置为148*7.5-200=910

最终算得

扇子距离妹弓

1792.5-910=882.5>750+125(碰撞半径)

扇子距离深月

1622.5-910=712.5<750+125(碰撞半径)

所以能打到深月,打不到妹弓。

有一说一,挺可惜的就差了7.5,也就是一步的距离,咫尺天涯。

扇子:再给我一帧的时间,我就能打到她!

有没有大佬在,可以出表情包了。

实例5:关于深月法阵减甲的距离。我看到妹弓,黄骑,深月,雪,羊驼,这个阵容,深月的减甲是减不到对方的中卫的,比如莫妮卡和中二都减不到。但是扇子,深月,羊驼,雪,充电宝,这个阵容深月就能减到对面的中卫,莫妮卡和中二都能被减防,这是为什么呢?都是深月,都有羊驼,距离不会有什么区别吧?

妹弓队

我方:

深月(565)[490],黄骑(405)[530]

敌方:

中二(440)[-35],毛二力(410)[135],布丁(125)[250]

可以看出黄骑,深月先停,最终位置与对方一号位无关

对方中二,毛二力的位置会受到我方黄骑的影响。

下面计算坐标和时间,过程懒得写了。

我方:

深月125帧{537.5},黄骑122帧{715}

敌方

中二198帧{1275},毛二力175帧{1247.5}

扇子队

我方:

深月(565)[290],扇子(415)[540]

敌方:

中二(440)[-35],毛二力(410)[135],布丁(125)[250]

最终算得坐标

深月138帧{435},扇子122帧{715}

敌方

中二198帧{1275},毛二力175帧{1247.5}

我仔细测试了一遍,我发现深月的减甲技能是给后排的,你会发现有减甲的那个截图前排也吃不到破甲,这不是距离不够近的问题,而是不够远的问题。

妹弓队里面,深月和中二的距离为737.5,而扇子队深月与莫妮卡的距离都超过了812.5。

【来源:bigfun】
版本专题
更多»
精华推荐
更多»
日期
游戏
状态
下载
礼包

页游测试表

日期
游戏
状态
评分
礼包