附魔了激流的三叉戟能夠給玩家多大的加速?

【引子】
????????激流 (riptide) 算是原版MC中最帥的附魔之一了,也是后期玩家在三叉戟上用得較多的一種附魔。然后我閑著沒事就想看看三叉戟是怎么給玩家加速的……
【太長不看版】
激流Ⅰ?-> 30m/s
激流Ⅱ -> 45m/s
激流Ⅲ -> 60m/s
? ? ? ? ? ?P.S.后面還有好玩的內(nèi)容
【代碼部分】
我們看到 TridentItem類的onStoppedUsing()方法中:
[ Lnet/minecraft/item/TridentItem;onStoppedUsing(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;I)V
]


? float f = playerEntity.yaw;
? float g = playerEntity.pitch;
? float h = -MathHelper.sin(f * 0.017453292F) * MathHelper.cos(g * 0.017453292F);
? float k = -MathHelper.sin(g * 0.017453292F);
? float l = MathHelper.cos(f * 0.017453292F) * MathHelper.cos(g * 0.017453292F);
? float m = MathHelper.sqrt(h * h + k * k + l * l);
? float n = 3.0F * ((1.0F + (float)j) / 4.0F);
? h *= n / m;
? k *= n / m;
? l *= n / m;
最后得到h, l, k 分別是這次加速的x,z,y軸動量。


????值得一提的是,站在地面上的玩家使用激流三叉戟,無論朝哪里,都會被加上個1.2m/gt的向上動量。
????1.2m/gt看似不大,但是作為比較,一次爆炸給玩家造成的最大推力也只不過1.0m/gt。
????最后就是播放音效了:

【得出結(jié)論】
????(我感覺這個專欄好水啊233)
????從代碼里面可以看到,一次riptide的過程給玩家的加速是一次性的。(區(qū)別于煙花火箭的“速度保持”。)
????加速大小 Δv = (附魔等級 + 1) * (3 / 4) [m/gt]
????分別代入一二三級激流附魔,可以得出:
????一級:Δv = 30 m/s
????二級:Δv = 45 m/s
????三級:Δv = 60 m/s
????……當(dāng)然還有有些人最關(guān)心的2,147,483,647級附魔:
????????理論上能給出 1610612736 m/s?的驚天加速(不過MC肯定撐不住233)。

????然而游戲并沒有崩潰,而是給出了3838.432這個最大y軸速度。
????至于為啥是這個數(shù)字……也許由MC中玩家的移動方式有關(guān)。反正我怎么調(diào)試客戶端服務(wù)端穿上脫下鞘翅都不能改變它……

【再說點(diǎn)別的】
????????三叉戟要蓄力多久?答案:0.5秒

???????當(dāng)然,使用一次激流之后,玩家需要1.0秒的CD來開始下一次蓄力。

????????也就是說三叉戟的周期是1.5秒。
????????假設(shè)玩家體重是60kg,那么每一次激流Ⅲ加速的動能變化量:
????????????????ΔEv = 0.5 * m *?Δv?^ 2
????????????????????????= 0.5 * 60 * 60 ^ 2
????????????????????????= 108000 (焦耳)
????????那么激流Ⅲ的三叉戟的最大功率就是 108000 / 1.5 = 72kw .
????????一人一叉,發(fā)電不差。