離地跳(BH)-iw百科

定義
離地跳(bunny hop, BH)是指在IWBTG系列游戲闖關(guān)時(shí),通過在不穩(wěn)定狀態(tài)下起跳,使得kid起跳點(diǎn)或最大跳躍高度達(dá)到常規(guī)手段無法達(dá)到的值,從而通過某些常規(guī)手段無法或很難通過的障礙。屬于高級(jí)技巧,最常用的場(chǎng)合是4.5格高墻和一段過平地納豆。
離地跳不屬于作弊或開掛,是游戲內(nèi)的合理操作。


操作方法
一般操作方法如下:站在地面上,一段跳跳到空中,自然下落,當(dāng)kid的腳與地面的頭相距不足1.5像素,且超過0.875像素時(shí),再次按下shift,此時(shí)系統(tǒng)判斷kid使用一段跳,這種跳法即為離地跳。
對(duì)于kid的腳與地面相距不足1.5像素,且超過0.875像素這一判據(jù),肉眼通常難以鑒別,因此一般的判別方式是粗略觀察或在多次練習(xí)后憑直感判斷。
(其實(shí)更一般的說法是:在kid的腳和地面似碰非碰的瞬間跳起來)


原理解釋
下面以標(biāo)準(zhǔn)4.5格為例,解釋離地跳的原理和必要性。
眾所周知,在IWBTG系列游戲中,kid一般可以二段跳。在較流行的游戲引擎(yuuutu/yoyoyo)中,kid一段跳、二段跳的定義如下:
公理一:kid跳躍力度公理
跳躍力度,即在跳躍發(fā)生時(shí),對(duì)kid豎直速度的賦值賦成多少。kid一段跳的力度是-8.5像素每步,二段跳的力度是-7像素每步。

公理二:kid重力值公理
kid的重力值是0.4像素每平方步。

公理二點(diǎn)五:kid上升速度截?cái)喙?/span>
如果在kid上升中松開跳躍鍵,那么kid的豎直速度變成原值的0.45倍。

公理三:kid重力與速度效應(yīng)公理
在每個(gè)步循環(huán)中,對(duì)kid是否跳躍進(jìn)行的判斷、kid的重力對(duì)kid豎直速度的改變、kid豎直速度對(duì)其實(shí)際位置的改變,這三個(gè)操作順序如下:
判斷kid是否進(jìn)行跳躍 ->?給kid的豎直速度加上kid的重力 -> 給kid的豎直位置加上kid的速度
(其中第2、3步由系統(tǒng)完成)
推論一:kid最大跳躍高度推論
首先對(duì)一段跳進(jìn)行分析。通過上述公理和簡單除法運(yùn)算可以得出,如果使用全力一段跳(長時(shí)間不松開跳躍鍵),其豎直速度為負(fù),處在上升狀態(tài)的“上升步”有:
floor(8.5/0.4) = 21步
這些步中其豎直速度分別是(單位是像素每步):
(-8.5+0.4), (-8.5+0.4*2), (-8.5+0.4*3), ...... , (-8.5+0.4*21)
于是一段跳的最大位移就是:
(-8.5+0.4)+(-8.5+0.4*2)+(-8.5+0.4*3)+......+(-8.5+0.4*21)
=(-8.1-0.1)*21/2
=-86.1像素
即最大跳躍高度是86.1像素。
同法可計(jì)算出二段跳的“上升步”有17步,最大位移是:
(-7+0.4)+(-7+0.4*2)+(-7+0.4*3)+......+(-7+0.4*17)
=(-6.6-0.2)*17/2
=-57.8像素
由于連續(xù)使用一段跳、二段跳必經(jīng)歷一個(gè)松開跳躍鍵-重按跳躍鍵的過程,且如果在同一步內(nèi)做出這兩個(gè)操作,就會(huì)引發(fā)二段取消跳(JC),使二段跳的高度被大大降低。因此,兩段跳連用能達(dá)到的最大高度,并不等于兩段跳分開計(jì)算所得最大高度之和143.9像素。
為了避免引發(fā)取消跳,必須將松開跳躍鍵和重按跳躍鍵的操作錯(cuò)開一步,由于速度截?cái)喙?,這樣會(huì)犧牲一些速度。顯然,可能是最優(yōu)選擇的兩個(gè)選擇分別是:
?在一段跳的最后一個(gè)上升步(開始跳躍20步后)松鍵,下一步重按。這樣在該步的速度就不是(-8.5+0.4*21)=-0.1,而是((-8.5+0.4*20)*0.45+0.4)=0.175,損失了(0.175-(-0.1))=0.275像素每步的速度,其他各步的運(yùn)動(dòng)狀態(tài)都無變化。于是最大跳躍高度就是(143.9-0.275)=143.625像素。
在一段跳的最后一個(gè)上升步的下一步(開始跳躍21步后)松鍵,再下一步重按。這樣就多出了一步,該步的速度是(-0.1+0.4)=0.3,是下落步,不會(huì)發(fā)生速度截?cái)?。其他各步的運(yùn)動(dòng)狀態(tài)都無變化,于是最大跳躍高度就是(143.9-0.3)=143.6像素。
可見選擇1是最優(yōu)選擇,即:
在開始跳躍20步后松鍵,下一步重按,即可達(dá)到常規(guī)二段跳模式下的最大跳躍高度,143.625像素。
推論二引言:
在人們的一般印象中,只要kid的腳比地面高的時(shí)候往那邊走,就能走過去(這話好像有點(diǎn)土)。因此,kid跳過障礙時(shí)只要跳到腳比障礙高再走就可以了。這符合人們?nèi)粘I钪械闹庇^印象。然而符合直觀印象的事情并不一定準(zhǔn)確:
公理四:kid與磚塊碰撞規(guī)則公理

猜想一:place_free()小數(shù)情況下判斷規(guī)則猜想
如圖,以kid向右跳過一堵高墻為例。

從公理四中的代碼中不難看出,這種情況下kid能否越過高墻,取決于在最高點(diǎn)處的place_free(x+hspeed,y)是真還是假:如果是假,執(zhí)行的動(dòng)作是:令kid貼緊墻體,并令kid的水平速度為0,即不發(fā)生水平移動(dòng),也就無法越過高墻;否則,不發(fā)生任何事,kid保持正常水平速度,在這個(gè)步循環(huán)中的特定時(shí)刻,kid的坐標(biāo)加上這個(gè)速度,就越過了高墻。
那么,函數(shù)place_free()是什么?翻閱文檔,描述如下:

即,假設(shè)把當(dāng)前物體移動(dòng)至指定位置,判斷它是否會(huì)與某些固體實(shí)例相碰撞,返回計(jì)算結(jié)果。它不會(huì)實(shí)際移動(dòng)物體,只是假設(shè)移動(dòng)到指定的位置。
在本例中,固體實(shí)例是磚塊,其他都是非固體實(shí)例。
(也就是用來判斷一下,如果他繼續(xù)往前走會(huì)不會(huì)碰磚頭)
當(dāng)各個(gè)實(shí)例的位置都是整數(shù)值時(shí),對(duì)是否發(fā)生碰撞的判斷較容易。以兩個(gè)水平坐標(biāo)值相等的等大矩形為例(圖中1個(gè)小方格代表1個(gè)像素):

假設(shè)藍(lán)色矩形的頭(最上面一行像素的豎直位置)是10,那么綠色矩形的腳(最下面一行像素的豎直位置)最少是10才能保證二者在交界處發(fā)生碰撞;是9則不發(fā)生碰撞。
那么如果綠色矩形的位置可以是小數(shù)呢?(實(shí)際上在IWBTG的一般引擎——GameMaker中這也是可以的)根據(jù)經(jīng)驗(yàn),我們作出以下猜想:
綠色矩形的腳大于9即是發(fā)生碰撞。
綠色矩形的腳不小于10即是發(fā)生碰撞。
綠色矩形的腳四舍五入為整數(shù)值后,大于9即是發(fā)生碰撞。
實(shí)驗(yàn)一:小數(shù)位置下place_free()的判斷規(guī)則探究實(shí)驗(yàn)
使用GameMaker編寫程序進(jìn)行測(cè)試,藍(lán)色矩形、綠色矩形都是長度80,寬度60,綠色矩形是固體,由藍(lán)色矩形判斷在本身位置的place_free(),結(jié)果如下:






做出初步結(jié)論,藍(lán)色矩形的腳四舍五入為整數(shù)值后,大于20即是發(fā)生碰撞。猜想1的分支3成立。
但此處隱藏著一個(gè)詭異的設(shè)定。新增將藍(lán)色矩形高度修改為61的另一組測(cè)試用例,結(jié)果如下:


由此可見,如果藍(lán)色矩形的高度為偶數(shù),則小數(shù)部分不大于0.5判舍,大于0.5則判入;
否則,根據(jù)整數(shù)部分的奇偶性判斷舍入:
如果整數(shù)部分是奇數(shù),則小數(shù)部分小于0.5判舍,不小于0.5則判入;
如果整數(shù)部分是偶數(shù),則小數(shù)部分不大于0.5判舍,大于0.5則判入。
(非常詭異,我不理解GameMaker為什么會(huì)出現(xiàn)這樣的情況)
kid的碰撞盒高度為21像素,是奇數(shù),因此遵循后一種判斷規(guī)則,即小數(shù)部分等于0.5時(shí),是舍是入取決于整數(shù)部分的奇偶性。由于該種情況下判斷方式過于復(fù)雜,后續(xù)不進(jìn)行討論。
于是,當(dāng)kid的腳四舍五入后高于高墻的頭,也即kid的腳高于(高墻的頭-0.5像素的位置)時(shí),就算kid跳過了高墻,此時(shí)向高墻方向走就能走到墻上。
(舉個(gè)例子,假如墻的頭是512,那kid的腳高于511.5,比如511.49、511.3等,就算他跳過了。)
推論二:怎么才算kid跳過了障礙推論
當(dāng)kid的腳高于(高墻的頭-0.5像素)時(shí),就算kid跳過了高墻。
定義一:平地情況下的穩(wěn)定狀態(tài)定義
對(duì)于kid的一組y坐標(biāo)和豎直速度值,如經(jīng)過一個(gè)步循環(huán)后這組值沒有變化,則稱kid處在穩(wěn)定狀態(tài)。
推論三:kid穩(wěn)定狀態(tài)下起跳,起跳點(diǎn)是多高推論
首先規(guī)定,起跳點(diǎn)就是開始跳躍的那一步中kid的腳。
有讀者朋友可能會(huì)問,這不是廢話嗎,不就是地面的頭-1嗎?
首先拋出結(jié)論,不是。

圖為標(biāo)準(zhǔn)yuuutu引擎下測(cè)試結(jié)果。
kid的y坐標(biāo)+8就得到了腳,是511.40,而地面的頭是512,并不符合我們的猜想。下面解釋原因。
根據(jù)yuuutu源碼,本例中由playerStart創(chuàng)建的player,初始y坐標(biāo)是503。


在kid被創(chuàng)建后玩家無操作,在一個(gè)步循環(huán)中,豎直速度由于重力效應(yīng)從0改變成0.4,于是豎直位置增加0.4。此時(shí),kid的腳是511.40,豎直速度是0.4,不與磚塊發(fā)生碰撞(511.40四舍五入是511,不足512)。
下一步,kid的豎直速度變成0.8,腳變成512.20,發(fā)生了與磚塊的碰撞。由于固體的“碰撞彈回”效應(yīng)(即物體發(fā)生與固體的碰撞事件,則位置會(huì)回到上一步的位置),kid的腳變回511.40。隨后在公理四的代碼中,kid的豎直速度被賦值為0,此時(shí)kid的腳是511.40,豎直速度是0。
再下一步,kid的豎直速度變成0.4,腳變成511.80,發(fā)生了與磚塊的碰撞。由于固體的“碰撞彈回”效應(yīng),kid的腳變回511.40。隨后在公理四的代碼中,kid的豎直速度被賦值為0,此時(shí)kid的腳是511.40,豎直速度是0,與上一步一致。因此在后續(xù)的時(shí)間內(nèi),kid穩(wěn)定在腳是511.40,豎直速度是0的狀態(tài)。
這是在自然狀態(tài)下,由直接擺放在地面上的playerStart創(chuàng)建出的player的變化規(guī)律。但player的穩(wěn)定狀態(tài)并不止這一種,由上面的推理可知,一種狀態(tài)是穩(wěn)定狀態(tài)當(dāng)且僅當(dāng)其有如下性質(zhì):
kid在當(dāng)前位置不與磚塊相碰。
kid的豎直速度是0。
kid在下一步與磚塊相碰。
其中第1條除非一開始就把playerStart放在磚里,否則是不會(huì)發(fā)生的。(因?yàn)橐慌鼍捅粡椈亓耍┒诒纠?,滿足第2和第3條的kid的腳必處在下述區(qū)間:
(511.10, 511.50)
左限制條件是511.50-0.4(豎直速度是0,重力效應(yīng)加0.4后與磚塊相碰),右限制條件是511.50(當(dāng)前不與磚相碰)。
因此:
如果kid站在地面上穩(wěn)定后起跳,起跳點(diǎn)必在下述區(qū)間:(地面的頭-0.9,?地面的頭-0.5)
定義二:kid的ya定義
kid的y坐標(biāo)的小數(shù)部分稱為kid的ya(y-alignment),如kid的y坐標(biāo)是511.10,其ya則是0.10。
推論五:kid站在地面上起跳,最高能跳多高推論
之前已經(jīng)計(jì)算出kid的最大跳躍高度是143.625,結(jié)合推論四,有:
如果kid站在地面上穩(wěn)定后起跳,則根據(jù)ya的不同,最高點(diǎn)必在下述區(qū)間:(地面的頭-144.525,?地面的頭-144.125)
推論六:為什么常規(guī)跳法一般跳不了4.5格推論
4.5格高墻的頭=地面的頭-144,根據(jù)推論二(怎么才算kid跳過了障礙推論),kid的最高點(diǎn)也就必須高于(地面的頭-144.5)才算他跳過去了。由于游戲中操作復(fù)雜,隨機(jī)性很強(qiáng),kid的ya可能處于任意值,就像拋硬幣一樣。假設(shè)kid的ya在可能范圍,即(0.1, 0.5)內(nèi)隨機(jī)取值,且玩家操作非常完美(正好與推論一中所述符合),那么:
如果kid可跳過4.5格,其最高點(diǎn)必處在:
(地面的頭-144.525,?地面的頭-144.5)
于是,其起跳點(diǎn)必處在:
(地面的頭-0.9,?地面的頭-0.875)
其ya就必處在:
(0.1, 0.125)
而在地面上穩(wěn)定后其ya是:
(0.1, 0.5)
故能跳過去的概率是:
(0.125-0.1)/(0.5-0.1)=6.25%
這個(gè)概率很小,在大量重復(fù)實(shí)驗(yàn)中平均每16次會(huì)出現(xiàn)一次。
實(shí)際上,玩家的操作也不一定能做到那么精確。推論一中計(jì)算表明,在出現(xiàn)失誤的情況下次優(yōu)跳法跳出的高度也只有143.6,無論kid的ya是多少,都不能越過4.5格。所以,用平地起跳的常規(guī)跳法去跳4.5格,一般要么就是操作失誤,要么就是kid的ya不在那可憐的6.25%范圍內(nèi)(玩家并不能用肉眼直接看出kid的ya是多少),實(shí)戰(zhàn)價(jià)值不大,這就是使用離地跳的必要性。即:
由于kid的ya隨機(jī)性和操作的嚴(yán)格性,用常規(guī)跳法跳過4.5格的實(shí)戰(zhàn)價(jià)值不大,有必要使用離地跳。
公理五:kid起跳判斷公理
yuuutu引擎中關(guān)于起跳判斷的代碼如下(反重力情況略去):

在普通地面上起跳時(shí),發(fā)生的是否一段跳就取決于place_meeting()函數(shù)的返回值是否真。place_meeting()的文檔描述如下:

即,假設(shè)當(dāng)前物體在指定位置,判斷其是否會(huì)與指定實(shí)例碰撞,并返回結(jié)果。與place_free()很相似,只是place_free()判斷固體實(shí)例,本函數(shù)則判斷指定的實(shí)例。
與實(shí)驗(yàn)一相似的實(shí)驗(yàn)表明,place_meeting()對(duì)小數(shù)的處理與place_free()一致,故不難得出,使得其判斷為真的kid的腳必低于(地面的頭-1.5)。例如地面的頭是512,則kid的腳需低于510.5(注意place_meeting()的判斷點(diǎn)在y+1),如510.51,511等。即:
對(duì)于在平地起跳的情況,如kid的腳低于(地面的頭-1.5),則使用的是一段跳。
定義三:平地情況下的不穩(wěn)定狀態(tài)定義
稱kid不是處在穩(wěn)定狀態(tài),卻能使用一段跳的狀態(tài)為不穩(wěn)定狀態(tài)。
推論七:為什么離地跳有戰(zhàn)略價(jià)值推論
由推論三可知,kid穩(wěn)定狀態(tài)下起跳,起跳點(diǎn)處在下述范圍內(nèi):
(地面的頭-0.9,?地面的頭-0.5)
而公理五表明,一段跳的使用條件,是kid的腳在下述范圍內(nèi):
(地面的頭-1.5,?地面的頭-0.5)
未必是處在穩(wěn)定狀態(tài)。
可見,對(duì)于kid腳的某些更高的取值,kid不是處在地面穩(wěn)定狀態(tài)卻能進(jìn)行一段跳(這也是“離地”二字的含義),并且在操作完美前提下都能越過4.5格。因此,積極尋找這種不穩(wěn)定狀態(tài)來起跳,對(duì)于跳過4.5格就很有幫助。不妨一算,假設(shè)不穩(wěn)定狀態(tài)下kid的腳在該范圍內(nèi)隨機(jī)取值,能跳過4.5格的概率是:
(1.5-0.875)/(1.5-0.5)=62.5%
是穩(wěn)定狀態(tài)下6.25%的整整10倍。
此外,離地跳也使得kid在某些非完美操作下也能越過4.5格。例如,次完美操作對(duì)應(yīng)的跳躍高度是143.6像素,常規(guī)跳法不可能跳過4.5格。而增大了kid腳的范圍后,只需其處在下述區(qū)間,即可越過4.5格:
(地面的頭-1.5,?地面的頭-0.9)
跳過的概率是:
(1.5-0.9)/(1.5-0.5)=60%
從0到60%,挺恐怖的不是嗎?
即:
離地跳能大大提高跳過4.5格的概率,有實(shí)戰(zhàn)價(jià)值。
理論數(shù)據(jù)
數(shù)據(jù)一:如何將ya=0.4調(diào)整至(0.1, 0.125)
在標(biāo)準(zhǔn)yuuutu引擎中,kid從平地上的playerStart出生,穩(wěn)定后ya是0.4,此時(shí)如果存檔,讀檔后ya也會(huì)是0.4。因此,雖然在實(shí)戰(zhàn)中ya不可見且會(huì)受到多種高隨機(jī)性因素影響,但0.4是一個(gè)相對(duì)確定可控的值。此時(shí)如果能通過某些簡單操作使穩(wěn)定后的ya處在(0.1, 0.125),則在完美二段下就可以直接越過4.5格障礙。
通常改變穩(wěn)定后ya的操作是原地一段跳。如果所需的高度容易控制,則可以在實(shí)戰(zhàn)中通過這樣的跳躍將ya調(diào)整至所需的值。顯然,跳躍次數(shù)越少可控性就越強(qiáng)。根據(jù)計(jì)算,對(duì)初始ya為0.4,各個(gè)步數(shù)的一段跳進(jìn)行一次后會(huì)將穩(wěn)定后的ya改變?yōu)橄铝兄担?/p>
(注:冒號(hào)前的數(shù)字表示一段跳步數(shù),即如果在第0步按下跳躍鍵,第5步松開跳躍鍵,則稱一段跳的步數(shù)是5步。因在第22步及以后松開跳躍鍵已經(jīng)不會(huì)發(fā)生速度截?cái)啵室欢翁綌?shù)最多是22。)
可見,不能通過一次一段跳將ya從0.4改變至(0.1, 0.125)。退一步搜索可行的兩次一段跳是否存在,結(jié)果如下:

注意,兩次一段跳的步數(shù)可以互換,結(jié)果不變。
兩次一段跳都控制到想要的步數(shù)一般較為困難。3次一段跳的可行方案很多,篩選出其中每一段都是9步以下或全力跳的可行方案如下:

22表示全力跳。
其中還有一種特殊情況:當(dāng)在0.4的初始ya下連續(xù)三次全力跳起后,ya會(huì)改變?yōu)?.1,根據(jù)實(shí)驗(yàn)一中的結(jié)論,如果地面的頭是偶數(shù)(在以8, 16, 32為單位網(wǎng)格的地圖中很常見),則kid站在地面上時(shí),其y坐標(biāo)的整數(shù)部分就是奇數(shù),小數(shù)部分是0.5會(huì)判定為與地面相碰撞,因此其ya會(huì)穩(wěn)定在0.1。由于全力跳非常容易控制,在一般情況下,都可以通過這種方式將ya調(diào)整至0.1,然后在穩(wěn)定狀態(tài)下跳過4.5格。
(注意,這些數(shù)據(jù)的大前提是使用GameMaker8的yuuutu引擎。著名跳躍測(cè)試工具jtool使用的GameMaker版本是GameMaker: Studio,其中的情況可能與本理論不符合,尤其是最后提到的特殊情況。)
數(shù)據(jù)二:初始ya=0.4下一般的離地跳操作
前述中指出,準(zhǔn)備動(dòng)作結(jié)束后再次一段跳的時(shí)機(jī),是“kid的腳離地面不足1.5像素且超過0.875像素”。由于kid的最高下落速度是9像素每步,加上重力效應(yīng),一步后y坐標(biāo)最大增量是9.4,遠(yuǎn)超(1.5-0.875)=0.625。因此,對(duì)于固定的初始ya,如果準(zhǔn)備動(dòng)作中一段跳的力度不合適,kid可能不會(huì)落到(0.875, 1.5)的區(qū)間內(nèi),也就意味著離地跳必然失敗。下面以固定初始ya=0.4為前提討論,經(jīng)計(jì)算,這種情況下可以順利跳上4.5格的動(dòng)作如下:

括號(hào)中第一個(gè)數(shù)是第一次一段跳的步數(shù),第二個(gè)數(shù)是第二次一段跳的時(shí)刻(取第一次一段跳為第0步),冒號(hào)后的數(shù)是第二次一段跳的起跳點(diǎn)。例如,數(shù)據(jù) (4, 26): -0.405 表示:在第0步使用一段跳跳起來,第4步松開跳躍鍵,第26步再次按下跳躍鍵并全力進(jìn)行二段跳,則能夠從(地面的頭-0.405)處起跳,跳過4.5格。
從表中也可以看出,一段跳的步數(shù)是2、12、15、16、17、21、22時(shí),離地跳必定失敗。此外也可以看出,第一次用8步一段跳可以使第二次一段跳起跳點(diǎn)最高。
總結(jié)
公理一(kid跳躍力度公理):kid的一段跳躍力度是-8.5,二段跳躍力度是-7。
公理二(kid重力值公理):kid的重力值是0.4像素每平方步。
公理三(kid重力與速度效應(yīng)順序公理):在每個(gè)步循環(huán)中,對(duì)kid是否跳躍進(jìn)行的判斷、kid的重力對(duì)kid豎直速度的改變、kid豎直速度對(duì)其實(shí)際位置的改變,順序如下:判斷kid是否進(jìn)行跳躍 ->?給kid的豎直速度加上kid的重力 ->?給kid的豎直位置加上kid的速度。
推論一(kid最大跳躍高度推論):在開始跳躍20步后松鍵,下一步重按,即可達(dá)到常規(guī)二段跳模式下的最大跳躍高度,143.625像素。
公理四(kid與磚塊碰撞規(guī)則公理):代碼略
猜想一(place_free()小數(shù)情況下判斷規(guī)則猜想):猜想中指定的兩矩形固定位置相碰的情形中,碰撞檢查函數(shù)place_free()小數(shù)情況下判斷規(guī)則可能如下:
綠色矩形的腳大于(藍(lán)色矩形的頭-1)即是發(fā)生碰撞。
綠色矩形的腳不小于藍(lán)色矩形的頭即是發(fā)生碰撞。
綠色矩形的腳四舍五入為整數(shù)值后,大于(藍(lán)色矩形的頭-1)即是發(fā)生碰撞。
實(shí)驗(yàn)一(小數(shù)位置下place_free()的判斷規(guī)則探究實(shí)驗(yàn)):實(shí)驗(yàn)證實(shí)猜想一中的分支3成立。
推論二(怎么才算kid跳過了障礙推論):當(dāng)kid的腳不低于(高墻的頭-0.5像素)時(shí),就算kid跳過了高墻。
定義一(平地情況下的穩(wěn)定狀態(tài)定義):對(duì)于kid的一組y坐標(biāo)和豎直速度值,如經(jīng)過一個(gè)步循環(huán)后這組值沒有變化,則稱kid處在穩(wěn)定狀態(tài)。
推論三(kid穩(wěn)定狀態(tài)下起跳,起跳點(diǎn)是多高推論):如果kid站在地面上穩(wěn)定后起跳,起跳點(diǎn)必在下述區(qū)間:(地面的頭-0.9,?地面的頭-0.5)。
定義二(kid的ya定義):kid的y坐標(biāo)的小數(shù)部分稱為kid的ya(y-alignment)。
推論五(kid穩(wěn)定狀態(tài)下起跳,最高能跳多高推論):如果kid站在地面上穩(wěn)定后起跳,則根據(jù)ya的不同,最高點(diǎn)必在下述區(qū)間:(地面的頭-144.525,?地面的頭-144.125)。
推論六(為什么常規(guī)跳法一般跳不了4.5格推論):由于常規(guī)跳法對(duì)ya要求和玩家操作過于苛刻,而ya和操作的可控性不強(qiáng),用常規(guī)跳法跳過4.5格的實(shí)戰(zhàn)價(jià)值不大,有必要使用離地跳。
公理五(kid起跳判斷公理):對(duì)于在平地起跳的情況,如kid的腳低于(地面的頭-1.5),則使用的是一段跳。
定義三(平地情況下的不穩(wěn)定狀態(tài)定義):稱kid不是處在穩(wěn)定狀態(tài),卻能使用一段跳的狀態(tài)為不穩(wěn)定狀態(tài)。
推論七(為什么離地跳有戰(zhàn)略價(jià)值推論):離地跳能大大提高跳過4.5格的概率,有實(shí)戰(zhàn)價(jià)值。
數(shù)據(jù)一(如何將ya=0.4調(diào)整至(0.1, 0.125)):一次一段無法做到,二次、三次一段可以做到。通常情況下三次全力跳可以將ya調(diào)整至0.1。
數(shù)據(jù)二(初始ya=0.4下一般的離地跳操作):如果初始ya=0.4,而第一次一段跳的步數(shù)是2、12、15、16、17、21、22時(shí),離地跳必定失敗。使得起跳點(diǎn)最高的第一次一段跳是8步。
感謝各位讀者朋友的認(rèn)真閱讀。如有錯(cuò)誤,歡迎私信或在評(píng)論區(qū)指正。?
第一次修改:
修改零:更換了一段過納豆刺陣圖。原圖可以站倒刺。
修改一:將離地跳的跳躍時(shí)機(jī)修改為“距地面不足1.5像素且超過0.875像素”,原表述“距地面不足1.5像素”只是能用一段跳的范圍,而不是使用離地跳的范圍,是錯(cuò)誤表述。
修改二:重寫推論一,原表述邏輯不清晰。
修改三:總結(jié)中ya的定義修改為“定義二”,原寫法“定義一”屬筆誤。
修改四:添加了理論數(shù)據(jù)部分。
修改五:修改實(shí)驗(yàn)一的步驟和結(jié)論,原實(shí)驗(yàn)步驟和結(jié)論有誤。
EOF