时间:2022-10-26 10:48
公主连结中战斗机制是非常硬核与深度的内容?本次就为大家带来了公主连结战斗机制大全,也是战斗原理与站位、嘲讽计算汇总,非常全面的内容,想了解战斗机制的朋友可以参考,希望能帮到大家。
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},暴击弓{1777.5},狐狸{1880}
我们来分析位置的差值
暴击弓与我方布丁=817.5<705(普攻距离)+125(碰撞半径)
暴击弓与我方空花=822.5<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。
这个距离变化也直接导致可能在这个分辨率你不会被打到,但是换了一个分辨率你被打到了。