最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

[mcbe]關(guān)于漏斗的一些特性分析(搬運(yùn))

2022-12-02 20:25 作者:叼叼的名字  | 我要投稿

寫(xiě)在前頭

本篇專欄是來(lái)自 @Maple_楓溪《關(guān)于漏斗的一些特性分析》,授權(quán)搬運(yùn)是為了收錄于文集《基石》中,方便整理be儲(chǔ)電相關(guān)理論。也歡迎各位網(wǎng)友向我推薦其他up的優(yōu)質(zhì)文章


由于漏斗的一些特性(bug)實(shí)在讓人費(fèi)解,所以我們拜托了?@hhhxiao_?從源碼級(jí)別來(lái)分析了一下漏斗的行為,以此推斷出了一些漏斗的特性(bug)成因。


一、漏斗的范圍

在代碼中,首先定義了漏斗的吸取范圍為1*1*1,這個(gè)范圍在漏斗上方是1*0.625*1,漏斗中1*0.375*1(漏斗上表面碰撞箱有凹陷),在這之后,吸收范圍往六個(gè)方向各收縮0.0001格,變?yōu)榭傮w0.9998*0.9998*0.9998。(如圖)

下陷的區(qū)域保證了在漏斗內(nèi)凹的物品也能被吸入

如圖,假設(shè)漏斗(灰色)吸取范圍為1,漏斗應(yīng)該會(huì)吸取到處于隔壁方塊邊界的物品(如圖橙色方塊),而漏斗實(shí)際范圍是0.9998,所以物品與漏斗吸取范圍沒(méi)有接觸,不會(huì)吸取到這個(gè)物品。成功的防止了“誤吸入”。

物品與漏斗范圍之間隔了0.0001格


二、精度下溢導(dǎo)致的高xz區(qū)域漏斗范圍增大

在x.z坐標(biāo)超過(guò)[-2049,+2048](以下簡(jiǎn)稱2048)的時(shí)候。因?yàn)榫认乱绲膯?wèn)題,漏斗上方的吸取范圍重新回到1*0.9998*1(y軸并不可能超過(guò)2048)。這導(dǎo)致的問(wèn)題就是漏斗可以不正確的吸取到處于旁邊方塊邊界的物品。

(僅有x坐標(biāo)超過(guò)[-2049,+2048],而z坐標(biāo)不超過(guò)[-2049,+2048]時(shí),漏斗僅x軸范圍擴(kuò)大,變?yōu)椋?*0.9998*0.9998),可得x,z坐標(biāo)的計(jì)算是獨(dú)立的,當(dāng)x,z坐標(biāo)都超過(guò)[-2049,+2048]時(shí),漏斗范圍才會(huì)變?yōu)?*0.9998*1)

消失的0.0001距離讓擦邊的物品能進(jìn)入漏斗(圖黃色方塊)


三、區(qū)塊邊界限位失效問(wèn)題的解釋

在代碼研究中可以發(fā)現(xiàn),漏斗的吸取范圍僅限于本區(qū)塊(漏斗遍歷整個(gè)區(qū)塊的實(shí)體)。也就是說(shuō),如果在區(qū)塊邊界(如圖,漏斗和冰中間是區(qū)塊邊界)。

掉落物實(shí)體坐標(biāo)以中心為準(zhǔn),所以歸屬于左邊的區(qū)塊


由于掉落物的坐標(biāo)判定以中心點(diǎn)為準(zhǔn),則掉落物在冰側(cè)的區(qū)塊,而漏斗在另一區(qū)塊。漏斗無(wú)法讀取到另一個(gè)區(qū)塊的掉落物(因?yàn)槁┒分蛔x取本區(qū)塊的掉落物),即物品限位后漏斗無(wú)法吸取到物品——這就是常說(shuō)的區(qū)塊邊界漏斗bug。


四、區(qū)域邊界的歸屬判定

區(qū)塊、方塊邊界(以下簡(jiǎn)稱區(qū)域邊界),屬于正方向的區(qū)域

聽(tīng)不懂不要緊,我們來(lái)畫(huà)個(gè)圖。

正方向指x,z的正坐標(biāo)(坐標(biāo)增)方向


區(qū)域與區(qū)域之間有交界處,但是在游戲里面這個(gè)交界處卻會(huì)帶來(lái)麻煩——如果一個(gè)實(shí)體正好處于交界處,那么到底如何去判定實(shí)體在哪個(gè)區(qū)域。

Mojang選擇把邊界歸于正方向的區(qū)域——也就是橙色區(qū)域。

那就是假如有個(gè)掉落物實(shí)體中心正好在兩個(gè)區(qū)域中間,這個(gè)掉落物實(shí)體會(huì)被判定為屬于正方向的區(qū)域(橙色),例如說(shuō)摩擦因素取值會(huì)取正方向的方塊的摩擦。

了解了這點(diǎn)以后,我們?cè)賮?lái)看漏斗范圍擴(kuò)大和這個(gè)判定會(huì)產(chǎn)生什么奇妙的化學(xué)反應(yīng)。


五、bug修復(fù)了bug

Mojang對(duì)于漏斗所處位置的判定是將漏斗吸取范圍邊界的坐標(biāo)截?cái)酁檎麛?shù),然后加載坐標(biāo)所處區(qū)塊內(nèi)所有掉落物。值得注意的是漏斗范圍在2048外會(huì)被不正確的擴(kuò)大到1,然后處于區(qū)塊邊界負(fù)方向側(cè)漏斗的正方向邊界已經(jīng)與區(qū)塊邊界重合,而這個(gè)區(qū)塊邊界屬于正方向的區(qū)塊,即這個(gè)漏斗范圍同時(shí)處于左右兩個(gè)區(qū)塊,這個(gè)跨區(qū)塊的漏斗會(huì)吸取兩個(gè)區(qū)塊(在區(qū)塊角落可能是三個(gè))的掉落物——即用bug去解決了區(qū)塊邊界的bug(特性)。

擴(kuò)大的漏斗范圍邊界與正方向區(qū)塊邊界重合

但是反方向(漏斗在正方向側(cè))則不能加載到另一側(cè)區(qū)塊(因?yàn)閰^(qū)塊邊界所屬問(wèn)題,可以自己嘗試分析)

即在2048坐標(biāo)外,區(qū)塊邊界的可用情況為

學(xué)姐的珍貴手繪,斯哈斯哈

? ? 本次專欄主要是由 @hhhxiao_ 的代碼研究推論而來(lái),感謝學(xué)姐對(duì)游戲代碼的挖掘讓我們能更加深刻的理解游戲機(jī)制。

? ? 本次專欄內(nèi)容由車軸草 @retrifolium?和影 @T0ShadowX 發(fā)現(xiàn)的bug延申討論而成(最后延申的是不是有點(diǎn)太長(zhǎng)了)

? ? 感謝 @江雁蒼穹 @钚鈷鳥(niǎo) @OEOTYAN 的大量猜想,討論,測(cè)試。

? ? 如果您對(duì)本文有異議或者發(fā)現(xiàn)勘誤,請(qǐng)私信我,我會(huì)盡快改正。



有異議或勘誤去找?@Maple_楓溪

[mcbe]關(guān)于漏斗的一些特性分析(搬運(yùn))的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
黑龙江省| 抚松县| 同江市| 高雄市| 东源县| 固安县| 怀来县| 花垣县| 永平县| 渭源县| 苍梧县| 社旗县| 祁东县| 齐河县| 德保县| 眉山市| 茂名市| 根河市| 建宁县| 开原市| 天台县| 扎鲁特旗| 县级市| 黔东| 萨嘎县| 嘉禾县| 西充县| 宜章县| 项城市| 阆中市| 辽源市| 阿鲁科尔沁旗| 汉阴县| 平顶山市| 米林县| 正阳县| 日照市| 涿州市| 四川省| 正安县| 闵行区|