欢迎光临散文网 会员登陆 & 注册

【Minecraft】【元件库】0t脉冲发生器(2)

2019-12-02 09:21 作者:HD-nuke8800  | 我要投稿

前一期专栏:https://www.bilibili.com/read/cv544167

前言:

        第1期专栏主要收集了Minecraft中常见且常用的0t脉冲发生器。而这一期的0t脉冲发生器主要以理论研究为主,而实用性较低。


        与前期相同,本文中的0t脉冲发生器仅适用于PC Minecraft,即java版的Minecraft。本文讨论也仅限于PC Minecraft。这一期暂仅讨论正脉冲(红石线熄灭→亮起→熄灭)。本文使用的Minecraft版本:1.12.2。

        先熟悉红石更新延迟理论有助于理解本文内容。

        编写:HD-nuke8800

正文

在Minecraft的1gt(gametick)中,分别进行了以下的更新顺序:

Next Tick Entry(简写NTE)
Random Tick(简写RT)
Block Event(简写BE)
Entity Update(简写EU)
Tile Entity(简写TE)

        而红石信号可在任一更新顺序发生变化,按照排列组合,将有25种不同的0t信号,本文中将列出25种0t正脉冲发生器。

25类0t脉冲发生器

关于检测手段:

Minecraft中红石线,动力铁轨,活板门,栅栏门等元件,对红石信号亮起和熄灭的响应是实时的。

Minecraft中的NTE类元件,如命令方块,中继器,发射器等元件,对红石信号的亮起是敏感的,它们能响应上升沿。但不是实时。

Minecraft中的BE类元件,如活塞,对在BE阶段更新的红石信号实时响应。

 

本文中将使用以下检测元件:

检测元件

1、命令方块,里面指令为:/say oh

2、中继器

3、铁活板门&木栅栏门。当检测到0t脉冲时,会发出极其短暂的“跨拉”的声音

4、活塞

5、必要时会增加另一个命令方块,设置为循环,里面指令为:/time query gametime

 

        和前一期一样,红色羊毛代表输入端,绿色羊毛(或粘土)代表输出端。



以下为0t发生器:

(1)NTE--NTE

NTE--NTE

触发方式:上升沿

中继器对着的命令方块指令为:/setblock 47 101 -30 redstone_block

比较器对着的命令方块指令为:/setblock 47 101 -30 air

PS:命令方块产生的更新在NTE。

NTE--NTE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:无动作

红石线:无闪烁

红石信号波形图如下:

NTE--NTE


(2)NTE--RT

NTE--RT

触发方式:上升沿

发射器里的物品:打火石

该发生器能否发出0t脉冲含有运气成分,且使用次数为一次性

使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

PS:火烧掉可燃方块产生的更新在RT。

NTE--RT

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:无动作

红石线:无闪烁

红石信号波形图如下:

NTE--RT


(3)NTE--BE

NTE--BE

触发方式:上升沿

PS:活塞推拉方块产生的更新在BE。

NTE--BE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:0gt瞬推

红石线:闪烁

红石信号波形图如下:

NTE--BE


(4)NTE--EU

NTE--EU

触发方式:上升沿

PS:TNT爆炸炸掉方块产生更新在EU。

NTE--EU

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:1gt瞬推

红石线:闪烁

红石信号波形图如下:

NTE--EU


(5)NTE--TE

NTE--TE

触发方式:上升沿

PS:活塞正常推拉方块造成的压线更新在TE。

NTE--TE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:1gt瞬推

红石线:闪烁

红石信号波形图如下:

NTE--TE


(6)RT--NTE

RT--NTE

触发方式:上升沿

发射器里的物品:打火石

命令方块(上图中靠右)中指令:/setblock 46 101 -11 air

该发生器使用次数为一次性

使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

RT--NTE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:1gt瞬推

红石线:闪烁

红石信号波形图如下:

RT--NTE

(7)RT--RT

RT--RT

触发方式:上升沿

发射器里的物品:打火石

该发生器能否发出0t脉冲含有运气成分,且使用次数为一次性

使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

RT--RT

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:无响应

红石线:无闪烁

红石信号波形图如下:

RT--RT


(8)RT--BE

RT--BE

触发方式:上升沿

发射器里的物品:打火石

该发生器使用次数为一次性

使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

RT--BE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:0gt瞬推

红石线:闪烁

红石信号波形图如下:

RT--BE


(9)RT--EU

RT--EU

触发方式:上升沿

发射器里的物品:打火石

该发生器使用次数为一次性

使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

RT--EU

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:1gt瞬推

红石线:闪烁

红石信号波形图如下:

RT--EU


(10)RT--TE

RT--TE

触发方式:上升沿

发射器里的物品:打火石

该发生器使用次数为一次性

使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

RT--TE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:1gt瞬推

红石线:闪烁

红石信号波形图如下:

RT--TE


(11)BE--NTE

BE--NTE

触发方式:上升沿

命令方块中指令(黄色羊毛旁):/setblock 46 101 10 air

该发生器使用次数为一次性

BE--NTE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:1gt瞬推

红石线:无闪烁

红石信号波形图如下:

BE--NTE


(12)BE--RT

BE--RT

触发方式:上升沿

发射器里的物品:打火石

该发生器使用次数为一次性

使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

BE--RT

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:1gt瞬推

红石线:无闪烁

红石信号波形图如下:

BE--RT


(13)BE--BE

BE--BE

触发方式:上升沿

BE--BE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:0gt瞬推

红石线:无闪烁

红石信号波形图如下:

BE--BE


(14)BE--EU

BE--EU

触发方式:上升沿

BE--EU

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:1gt瞬推

红石线:无闪烁

红石信号波形图如下:

BE--EU


(15)BE--TE

BE--TE

触发方式:上升沿

BE--TE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:1gt瞬推

红石线:无闪烁

红石信号波形图如下:

BE--TE


(16)EU--NTE

EU--NTE

触发方式:上升沿

命令方块中指令(黄色羊毛旁):/setblock 47 101 30 air

该发生器使用次数为一次性

EU--NTE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:无响应

红石线:无闪烁

红石信号波形图如下:

EU--NTE


(17)EU--RT

EU--RT

触发方式:上升沿

发射器里的物品:打火石

该发生器使用次数为一次性

使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

EU--RT

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作渲染

活塞:无响应

红石线:无闪烁

红石信号波形图如下:

EU--RT


(18)EU--BE

EU--BE

触发方式:上升沿

EU--BE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:0gt瞬推

红石线:闪烁

红石信号波形图如下:

EU--BE


(19)EU--EU

EU--EU

触发方式:上升沿

EU--EU

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:无响应

红石线:无闪烁

红石信号波形图如下:

EU--EU


(20)EU--TE

EU--TE

触发方式:上升沿

EU--TE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:无响应

红石线:无闪烁

红石信号波形图如下:

EU--TE


(21)TE--NTE

TE--NTE

触发方式:上升沿

命令方块中指令(黄色羊毛旁):/setblock 45 101 50 air

该发生器使用次数为一次性

TE--NTE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:无响应

红石线:无闪烁

红石信号波形图如下:

TE--NTE


(22)TE--RT

TE--RT

触发方式:上升沿

发射器里的物品:打火石

该发生器使用次数为一次性

使用前,先输入指令以增大输出0t脉冲的成功率:/gamerule randomTickSpeed 6000。(Minecraft默认设置数值为 3)

TE--RT

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:无响应

红石线:无闪烁

红石信号波形图如下:

TE--RT


(23)TE--BE

TE--BE

触发方式:上升沿

TE--BE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:0gt瞬推

红石线:闪烁

红石信号波形图如下:

TE--BE


(24)TE--EU

TE--EU

触发方式:上升沿

TE--EU

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,有开闭动作显示

活塞:1gt瞬推

红石线:闪烁

红石信号波形图如下:

TE--EU


(25)TE--TE

TE--TE

触发方式:上升沿

TE--TE

检测元件响应行为:

命令方块:(见上图)

中继器:1t闪烁

活板门、栅栏门:发出“跨拉”声,无开闭动作显示

活塞:无响应

红石线:无闪烁

红石信号波形图如下:

TE--TE


统计分析:

关于活塞:

        先来分析大家最为关心的活塞,下表中列出了25种发生器,活塞对应的行为。图示中,绿色代表活塞产生了0gt瞬推行为,黄色代表活塞产生1gt瞬推行为,红色代表活塞无响应。

活塞行为标注表1

或者,换个排列方式观察一下?

活塞行为标注表2

经过观察可以发现以下规律:

1、只有下降沿发生在Block Event,活塞才能产生0gt瞬推!

2、只要0t信号在经过Block Event时保持亮起(高电平),过了Block Event才熄灭(低电平),活塞动作都是1gt瞬推!

3、只要0t信号没有经过Block Event(BE期间是低电平),活塞都无响应!

 

关于中继器和命令方块:

        中继器和命令方块只要收到上升沿肯定会有反应的。问题是某些0t发生器中我放了设置循环,内部指令为“/time query gametime”的命令方块,报了两次gametime。

        观察发现,报了两次gametime的0t发生器,0t信号都跨过了gt分界线。(TE和NTE之间)

PS:问题来了,这还能叫0t么?我打算在另一篇专栏中再次讨论这个问题,暂且把这个问题搁下。

 

关于红石线,活板门、栅栏门:

        细心观察可以发现,红石线有时候会闪烁,活板门和栅栏门有时候会有开闭显示,有什么规律呢?图示中,绿色代表红石线,活板门、栅栏门无闪烁、开闭显示。黄色代表红石线,活板门、栅栏门有闪烁、开闭显示。

闪烁、开闭显示标注表1

或者,换个排列方式观察下?

闪烁、开闭显示标注表2

观察可以发现以下规律:

        只要0t信号在高电平期间经过了RT和BE的分界线,红石线,活板门、栅栏门就会产生闪烁,开闭显示现象。

 

关于“0t信号长度”:

        在第1期中我提到了“0t信号长度”的定义,注意的是,这个概念只适用于能让活塞产生0gt瞬推的0t信号。留意第1期中的发生器,它们都属于“NTE--BE”,“BE--BE”,“TE--BE”这三类0t发生器,这三类0t发生器的0t信号下降沿都在BE。可以说,“0t信号长度”只能用来衡量“NTE--BE”、“RT--BE”、“BE--BE”、“EU--BE”、“TE--BE”这五种0t发生器发出的0t信号能激活活塞的个数。其它20类0t发生器发出的0t,活塞要么不响应,要么1gt瞬推。所以“0t信号长度”在另外20类0t发生器产生的0t信号中不可用!

PS:让活塞产生1gt瞬推的0t信号,它们能激活bud位活塞个数理论上是∞个。

 

最后,就是大汇总了:

汇总表1
汇总表2

后记:

        第2期的0t脉冲发生器也到此写完了。看完后,相信很多人已经发现了新的问题了。细心的观众会发现,我这次并没有使用第1期中出现的“0t脉冲,本质是在同1gt(gametick)内亮起并熄灭的红石信号。”这句话。很明显,这篇文章中提到的25类0t发生器中,有10类0t发生器和这句话是相悖的。而第1期中有几个属于“TE--BE”类型的0t发生器也是和这句话相矛盾的。目前这个问题尚未解决。这里我只能抛砖引玉了。

(´・_・`)

        若发现本文中出现差错,欢迎在评论区给出。也欢迎在评论区发表自己的看法和意见。qwq


【Minecraft】【元件库】0t脉冲发生器(2)的评论 (共 条)

分享到微博请遵守国家法律