Nonrecursive Movement Formulas/zh: Difference between revisions

From Minecraft Parkour Wiki
Content added Content deleted
(Created page with "非递归公式")
 
(Created page with "* <math display="inline">v_0</math> 是玩家的初始速度(跳跃之前,<math>t_0</math> 时的速度) * <math display="inline">t</math> 是计入的 ticks 数(例如:平地上 t=12,参见'''跳跃持续时间''') * <math display="inline">J</math> 是“跳跃增益”(疾跑跳跃为 0.3274,斜疾跑跳跃为 0.291924,45°无疾跑跳跃为 1.0……) * <math display="inline">M</math> 是跳跃后的移动乘数(45°斜疾跑为 1.3,正常疾...")
Line 6: Line 6:
'''定义:'''
'''定义:'''


* <math display="inline">v_0</math> 是玩家的初始速度(跳跃之前,<math>t_0</math> 时的速度)
<div lang="en" dir="ltr" class="mw-content-ltr">
* <math display="inline">v_0</math> is the player's initial speed (speed on <math>t_0</math>, before jumping)
* <math display="inline">t</math> 是计入的 ticks 数(例如:平地上 t=12,参见'''跳跃持续时间''')
* <math display="inline">J</math> 是“跳跃增益”(疾跑跳跃为 0.3274,斜疾跑跳跃为 0.291924,45°无疾跑跳跃为 1.0……)
* <math display="inline">t</math> is the number of ticks considered (ex: t=12 on flat ground, see '''Jump Duration''')
* <math display="inline">J</math> is the "jump bonus" (0.3274 for sprintjump, 0.291924 for strafed sprintjump, 0.1 for 45° no-sprint jump...)
* <math display="inline">M</math> 是跳跃后的移动乘数(45°斜疾跑为 1.3,正常疾跑为 1.274,无疾跑45° 1.0……)
* <math display="inline">M</math> is the movement multiplier after jumping (1.3 for 45° sprint, 1.274 for normal sprint, 1.0 for no-sprint 45°...)
</div>






== 垂直运动(跳跃)[1.8] ==
<div lang="en" dir="ltr" class="mw-content-ltr">
== Vertical Movement (jump) [1.8] ==
</div>


跳跃后的垂直速度(<math>t \geq 6</math>)
<div lang="en" dir="ltr" class="mw-content-ltr">
Vertical speed after jumping (<math>t \geq 6</math>)
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
:<math display="inline">\textrm{V}_Y(t) = 4 \times 0.98^{t-5} - 3.92</math>
:<math display="inline">\textrm{V}_Y(t) = 4 \times 0.98^{t-5} - 3.92</math>
</div>




跳跃后的相对高度(<math>t \geq 6</math>)
<div lang="en" dir="ltr" class="mw-content-ltr">
Relative height after jumping (<math>t \geq 6</math>)
</div>


:<math display="inline">\textrm{Y}_{rel}(t) = \underset{\textrm{跳跃最高点}}{\underbrace{197.4 - 217 \times 0.98^5}} + 200 (0.98-0.98^{t-4}) - 3.92 (t-5)</math>
<div lang="en" dir="ltr" class="mw-content-ltr">
:<math display="inline">\textrm{Y}_{rel}(t) = \underset{\textrm{jump peak}}{\underbrace{197.4 - 217 \times 0.98^5}} + 200 (0.98-0.98^{t-4}) - 3.92 (t-5)</math>
</div>




对于 <math display="inline">t<6</math> 的情况,见下文。
<div lang="en" dir="ltr" class="mw-content-ltr">
For <math display="inline">t<6</math>, see below.
</div>






== 垂直运动(跳跃)[1.9+] ==
<div lang="en" dir="ltr" class="mw-content-ltr">
== Vertical Movement (jump) [1.9+] ==
</div>


跳跃后的垂直速度(<math>t \geq 1</math>)
<div lang="en" dir="ltr" class="mw-content-ltr">
Vertical speed after jumping (<math>t \geq 1</math>)
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
:<math display="inline">\textrm{V}_Y(t) = 0.42 \times 0.98^{t-1} + 4 \times 0.98^t - 3.92</math>
:<math display="inline">\textrm{V}_Y(t) = 0.42 \times 0.98^{t-1} + 4 \times 0.98^t - 3.92</math>
</div>




跳跃后的相对高度(<math>t \geq 0</math>)
<div lang="en" dir="ltr" class="mw-content-ltr">
Relative height after jumping (<math>t \geq 0</math>)
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
:<math display="inline">\textrm{Y}_{rel}(t) = 217 \times (1 - 0.98^t) - 3.92 t</math>
:<math display="inline">\textrm{Y}_{rel}(t) = 217 \times (1 - 0.98^t) - 3.92 t</math>
</div>




Line 72: Line 48:
</div>
</div>


假设玩家在跳跃前已经在空中。
<div lang="en" dir="ltr" class="mw-content-ltr">
Assuming the player was airborne before jumping.
</div>


疾跑跳跃后的水平速度(<math>t \geq 2</math>)
<div lang="en" dir="ltr" class="mw-content-ltr">
Horizontal speed after sprintjumping (<math>t \geq 2</math>)
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
:<math display="inline">\textrm{V}_H(v_0,t) = \frac{0.02 M}{0.09} + 0.6 \times 0.91^t \times \left ( v_0 + \frac{J}{0.91} - \frac{0.02 M}{0.6 \times 0.91 \times 0.09} \right )</math>
:<math display="inline">\textrm{V}_H(v_0,t) = \frac{0.02 M}{0.09} + 0.6 \times 0.91^t \times \left ( v_0 + \frac{J}{0.91} - \frac{0.02 M}{0.6 \times 0.91 \times 0.09} \right )</math>
</div>




疾跑跳跃距离(<math>t \geq 2</math>
<div lang="en" dir="ltr" class="mw-content-ltr">
Sprintjump distance (<math>t \geq 2</math>)
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">

Revision as of 03:27, 29 January 2022

Other languages:

由於算術幾何序列有明確的公式,我們可以建立非遞歸函數來計算簡單但有用的結果,例如在任一 tick 上玩家的高度,或者在初始速度與持續時間的基礎上計算跳躍的距離。


定義:

  • 是玩家的初始速度(跳躍之前, 時的速度)
  • 是計入的 ticks 數(例如:平地上 t=12,參見跳躍持續時間
  • 是「跳躍增益」(疾跑跳躍為 0.3274,斜疾跑跳躍為 0.291924,45°無疾跑跳躍為 1.0……)
  • 是跳躍後的移動乘數(45°斜疾跑為 1.3,正常疾跑為 1.274,無疾跑45°為 1.0……)


垂直運動(跳躍)[1.8]

跳躍後的垂直速度(


跳躍後的相對高度(

Failed to parse (syntax error): {\textstyle \textrm{Y}_{rel}(t) = \underset{\textrm{跳跃最高点}}{\underbrace{197.4 - 217 \times 0.98^5}} + 200 (0.98-0.98^{t-4}) - 3.92 (t-5)}


對於 的情況,見下文。


垂直運動(跳躍)[1.9+]

跳躍後的垂直速度(


跳躍後的相對高度(



Horizontal Movement (instant jump)

假設玩家在跳躍前已經在空中。

疾跑跳躍後的水平速度(


疾跑跳躍距離(


Note: These formulas are accurate for most values of , but some negative values can wind up activating the speed threshold and reset the player's speed at some point, thus rendering these formulas inaccurate.


Horizontal Movement (delayed jump)

Assuming the player is on ground before jumping (at least 1 tick since landing).

Horizontal speed after sprintjumping ()


Sprintjump distance ()



Advanced Formulas

Horizontal speed after consecutive sprintjumps on a momentum of period (, ).

If the first sprintjump is delayed, multiply by 0.6