一直以来好像没人针对JS做过详细的攻速讲解,今天本人就来开个技术性贴好了。
大多游戏的攻速都是根据帧数进行计算,1秒分为18份,即随着攻速的增加,攻击间隔一共可跳18次,而金山则改为取帧数再转化为按秒计算,攻击间隔一共只可跳10次,即大家所看到的0.*秒。
举例说明:
按帧数跳的攻速需求为:6、13、20、29、39、50、64、80、100、125……后面不再列举,因为目前无法达到。按80的攻速来说,攻速是达到10/18,即每0.555……秒攻击一次。
而按金山的算法,首先,你的攻速必须实现“跳秒”,即跨过0.1的幅度。 (金山恶心的关键所在)
比如说:每0.8秒攻击一次,需(18/(18×0.8)-1)*100=25的攻速,看不懂公式可以忽略,只管结果数据。然在实际中当你攻速达到25的时候,是无法实现0.8秒/次的攻速的,因为没有实现跳帧,所以,必须达到就近的一个跳帧点,才能实现实际攻速的跳跃,即攻速29。
那么,参照以上算法:
攻速若需达到0.8秒一次,需要29的攻速。
攻速若需达到0.7秒一次,需要50的攻速。
攻速若需达到0.6秒一次,需要80的攻速。
攻速若需达到0.5秒一次,需要100的攻速。
也许有人有问题了,为什么0.7到0.6中间的差是30,0.6到0.5的差值却是20?不是因为越到后面差值越大吗?
单纯的按照帧数的算法的确是应该差值越来越大,但是如之前所说,金山首先考虑的是“跳秒”,然后再需达到跳帧。因为这种具有金山特色的算法,使得0.7-0.6差了2个帧位,而0.6-0.5只差了1个帧位。
158、200、260、350、500、800、1700
需要后面的攻速表也可以,不过个人认为0.5应该是JS的极限了。
攻速若需达到0.4秒一次,需要158的攻速。
攻速若需达到0.3秒一次,需要260的攻速。
攻速若需达到0.2秒一次,需要500的攻速。
攻速若需达到0.1秒一次,需要1700的攻速。