| 稀有度 | |
|---|---|
| 创造标签页(JE) |
红石方块 |
| 创造分类(BE) |
物品 |
| 合适挖掘工具 | |
| 硬度 | |
| 爆炸抗性 | |
| 引燃几率 | |
| 烧毁几率 | |
| 熔岩可燃性 | |
| 窒息生物 | |
| 红石导体 | |
| 最大堆叠 | |
| 光照透明 |
是 |
| 可再生 |
是 |
| 命名空间ID |
见数据值 |
红石比较器(Redstone Comparator)是能使红石信号保持、比较、作差或检测特定方块状态(主要是容器装载量)的红石元件方块。
获取
按挖掘键破坏比较器。红石比较器可以用任何工具破坏,并掉落自身物品。
红石比较器在下列情况也会掉落为物品:
若熔岩流过其位置,红石比较器会被破坏但不会掉落物品。
合成
| 材料 | 合成配方 |
|---|---|
| 红石火把 + 下界石英 + 石头 |
用途
红石比较器可以放置在任何不透明全体积固体方块(包括倒台阶与楼梯)以及漏斗上。在基岩版,还可以放置在玻璃、石墙、栅栏和炼药锅上。按放置方块键放下红石比较器。
红石比较器有前后之分——上部的三角指向的是前方。放下比较器时,比较器的后方(即输入侧)朝向玩家。比较器上后侧有两根小红石火把,靠前端则有一根。当输入比较器的信号大于零时,后侧的火把会变亮,三角也会变红。前端火把的状态可以由使用物品键切换:
- 关闭、熄灭(指示比较器处于“比较模式”),
- 打开、亮起(指示比较器处于“作差模式”)。
红石比较器可以从后侧及边侧(左右侧)接受信号。边侧输入只能从红石块、红石粉、红石中继器和其他比较器接收。红石比较器的前侧是输出端。
红石比较器输出信号时,后侧的两个小火把会亮起,否则熄灭。
信号经过红石比较器需要1红石刻(2游戏刻或不考虑游戏卡顿为0.1秒),不论输入端是前侧还是边侧。输入信号强度发生改变或输入信号有无的转变也是这样。仅1刻的输入信号变化红石比较器通常不会有反应——例如单刻脉冲的发生器在边侧输入时会被认为总是无信号,在后侧输入则认为是保持开启。
红石比较器有四大用途:保持信号强度、比较信号强度、信号强度作差以及检测方块的状态(主要为容器的装载量)。
保持信号强度
红石比较器边侧没有输入时,输出的信号强度与后侧输入的强度相同。
比较信号强度
比较模式的比较器。
红石比较器处于比较模式时(前侧火把关闭)会将后侧输入与边侧的输入比较。若有任意边侧输入大于后侧输入,比较器输出关闭。若两边侧都不大于后侧输入,则比较器仅会输出与后侧相同的信号强度。表达式如下:
输出 = 后侧 * (左侧 <= 后侧 AND 右侧 <= 后侧)
信号强度作差
红石比较器处于作差模式(前侧火把打开)时,输出信号强度等于后侧输入信号与两边侧中较强的信号强度之差(最小为0)。表达式如下:
输出 = max(后侧 - max(左侧, 右侧), 0)
例如,如果信号强度在左侧输入处为6,在右侧输入处为7,在后侧为4,则输出信号的强度为 max(4 - max(6, 7), 0) = max(4-7, 0) = max(-3, 0) = 0。
如果信号强度在后侧为9,在右侧输入为2,在左侧输入为5,则输出信号的强度为 max(9 - max(2, 5), 0) = max(9-5, 0) = 4。
检测方块状态
红石比较器会将后方特定的方块看做电源并将对应的强度作为输入信号。比较器与受测方块之间可以被一个实体方块隔离。
实际上,比较器后方毗邻方块的装载量优先级最高。后方实体方块后的方块装载量又优先于其他红石信号。不过,在Java版中,若其他红石信号为15等级,比较器的输出会为15等级而不检测方块的状态。[1]
另外,比较器实际上最大可以寄存2,147,483,647的信号强度,可以通过检测命令方块或检测使用命令修改过的容器来获得大于15的信号。
容器
| 信号强度 | 容器与物品栏数 | ||||||
|---|---|---|---|---|---|---|---|
| 3 | 5 | 9 | 27 | 54 | — | ||
| 0 | 0个 | 0个 | 0个 | 0个 | 0个 | — | |
| 1 | 1个 | 1个 | 1个 | 1个 | 1个 | "13" | |
| 2 | 14个 | 23个 | 42个 | 1组 60个 |
3组 55个 |
"cat" | |
| 3 | 28个 | 46个 | 1组 19个 |
3组 55个 |
7组 46个 |
"blocks" | |
| 4 | 42个 | 1组 5个 |
1组 60个 |
5组 51个 |
11组 37个 |
"chirp" | |
| 5 | 55个 | 1组 28个 |
2组 37个 |
7组 46个 |
15组 28个 |
"far" | |
| 6 | 1组 5个 |
1组 51个 |
3组 14个 |
9组 42个 |
19组 19个 |
"mall" | |
| 7 | 1组 19个 |
2组 10个 |
3组 55个 |
11组 37个 |
23组 10个 |
"mellohi" | |
| 8 | 1组 32个 |
2组 32个 |
4组 32个 |
13组 32个 |
27组 | "stal" | |
| 9 | 1组 46个 |
2组 55个 |
5组 10个 |
15组 28个 |
30组 55个 |
"strad" | |
| 10 | 1组 60个 |
3组 14个 |
5组 51个 |
17组 23个 |
34组 46个 |
"ward" | |
| 11 | 2组 10个 |
3组 37个 |
6组 28个 |
19组 19个 |
38组 37个 |
"11" | |
| 12 | 2组 23个 |
3组 60个 |
7组 5个 |
21组 14个 |
42组 28个 |
"wait" | |
| 13 | 2组 37个 |
4组 19个 |
7组 46个 |
23组 10个 |
46组 19个 |
"pigstep" | |
| 14 | 2组 51个 |
4组 42个 |
8组 23个 |
25组 5个 |
50组 10个 |
— | |
| 15 | 3组 | 5组 | 9组 | 27组 | 54组 | — | |
用于检测容器的比较器。
用于检测容器状态的红石比较器会根据物品装满的程度输出对应信号(空为0,满为15,以此类推)。
下列容器可以被比较器检测:
当比较器检测大箱子或大陷阱箱时,比较器会检测整个大箱子(54个槽位),而不只是比较器后方的那半个。不能打开的箱子(无论是因为上方有实体方块还是有猫在上方)总会使比较器被认为信号为0,不受其中物品数量的影响。而潜影箱总是可以被检测的,即使无法打开。
右边的“容器信号强度所需最少物品数”表展示了各容器中,64为1组的物品需要多少组才能输出指定的信号强度值。“组”前的数字表示满叠的物品需要组数(不需要1组则不显示),“个”前的数字表示整叠物品以外需要的物品数量(没有零头时不显示)。对于只能堆叠到16个的物品(雪球、告示牌、末影珍珠等),“个”前的数字除以4向上取整就可以适用。对于不可堆叠的物品,一个就相当于一组。
例如,假设全部使用堆叠数为64的物品,需要依靠漏斗产生10强度的信号需要至少3组又14个物品,一共206个。
- 已知物品数量,求输入信号强度值
- 容器空时,输入0。
- 容器不为空时,输入按下列计算:
信号强度 = 向下取整[1 + (所有槽位的满度之和 / 槽位总数) * 14]
一个槽位的满度 = 该槽位的物品数 / 此类物品最大堆叠数
- 示例:发射器(共9个槽位)中有300方块,这种方块最大堆叠至64,产生信号强度为8:
1 + ((300物品 / 64最大堆叠数) / 9个槽位) * 14 = 8.292,下取整得8。
- 注意不可堆叠的物品总被认为充满一个槽位(1物品,1最大堆叠数:1 / 1 = 1.0),最多堆叠到16的物品(例如末影珍珠、雪球或鸡蛋)也类似地看作16即为充满。
- 已知信号强度值,求物品数量
- 这对于利用比较器与容器配合来输出特定强度来说是有用的。输出特定信号强度所需物品数量用如下算法计算:
所需物品数 = max{目标信号强度 , 向上取整[ ( 容器总槽位数 * 64 / 14) * ( 目标信号强度 - 1 ) ] }
- 示例:利用熔炉(3物品栏)来创造强度为9的信号,你需要110物品:
max( 9 , ( 3 * 64 / 14 ) * ( 9 - 1 ) ) = 109.714,上取整为110。
其他
一些非容器的方块也可以被比较器检测:
- 蛋糕输出的信号强度取决于蛋糕剩余量。每片输出2强度,总共有7片,也就是说完整蛋糕输出14强度。
炼药锅的信号强度。
- 炼药锅输出的信号强度取决于水量。从完全无水到完全充满,输出分别为0、1、2与3。
堆肥桶的信号强度。
- 堆肥桶输出的信号强度依赖于堆肥桶的堆肥层数,每有一层增加一格信号。从完全没有到完全充满,输出分别为0到8。
- 命令方块存储最后执行的命令的“成功次数”,表示此命令方块最近执行成功命令的次数。“成功”的定义由命令的成功条件决定:如果聊天界面显示红色错误信息,那么命令执行不成功。
- 大多数命令每次执行只能成功一次,但特定命令(例如将玩家作为参数的命令)可以成功多次,比较器会输出全部的成功数(可以超过15)。
- 命令方块持续存储最后执行的命令的成功数,直到再次执行命令。因此比较器会持续输出同一信号强度,即使命令方块已经不在激活状态(命令方块关闭不影响比较器开关)。
- 末地传送门框架有末影之眼的时候输出满强度15,若非则0。
比较器可以检测物品展示框的物品是否存在及其方向。
- 比较器可以检测物品展示框的内含物状态。若要检测展示框的状态,比较器必须连接在展示框附着方块的后方,并背侧朝方块。若展示框内无物品,则输出0,此外则根据物品旋转角度为1至8强度(1为默认方向,右击旋转直到8,然后再返回1)。
- 唱片机输出的信号取决于正在播放的唱片。对应关系请见上方的容器信号强度所需最少物品表格。
- 讲台输出的信号强度取决于当前玩家打开书的页码(例如一本有15页的书每翻一页提升1信号强度,或5页的书每翻一页提升3强度)。
- 蜂巢和蜂箱会输出与其
honey_level值相同强度的红石信号。
- 取决于重生锚的能量:1级能量对应3级信号,2级能量对应7级信号,3级能量对应11级信号,4级能量对应15级信号。
- 可被红石比较器检测信号频率。
[新增:JE 1.17]
| 频率 | 振动钟类 | 游戏时间 | 描述 |
|---|---|---|---|
| 1 | 脚步 | minecraft:step | 一个实体行走。(潜行时会被忽略) |
| 2 | 拍打 | minecraft:flap | 飞行实体(例如蝙蝠)拍打翅膀 |
| 3 | 游泳 | minecraft:swim | 实体游泳 |
| 4 | 鞘翅落地 | minecraft:elytra_free_fall | 鞘翅激活后落地 |
| 5 | 落地 | minecraft:hit_ground | 实体从高处落地(潜行时会被忽略) |
| 6 | 溅起水花 | minecraft:splash | 实体浮出水面 |
| Wolf Shaking | minecraft:wolf_shaking | 一只狼在接触到水以后把水甩掉 | |
| 7 | 发射弹射物 | minecraft:projectile_shoot | 一个弹射物被发射(潜行时会被忽略) |
| 开始进食 | minecraft:eating_start | 玩家开始进食 | |
| 8 | 弹射物落地 | minecraft:projectile_land | 一个弹射物撞击到某个物体 |
| 结束进食 | minecraft:eating_finish | 玩家结束进食 | |
| 9 | 攻击实体 | minecraft:entity_hit | 一个实体被其他实体攻击 |
| 为盔甲架加入物品 | minecraft:armor_stand_add_item | 盔甲架被装上盔甲 | |
| 10 | 关闭方块 | minecraft:block_close | 门、活板门或栅栏门被关闭 |
| 关闭开关 | minecraft:block_unswitch | 拉杆被关闭 | |
| Unpress Block | minecraft:block_unpress | 按钮恢复到未被按下的状态 | |
| Detach Block | minecraft:block_detach | 一个绊线被拆除 | |
| 关闭容器 | minecraft:container_close | 一个容器被关闭 | |
| 发射失败 | minecraft:dispense_fail | 发射器发射失败 | |
| 11 | 打开方块 | minecraft:block_open | 门、活板门或栅栏门被打开 |
| Switch Block | minecraft:block_switch | 拉杆被打开 | |
| Press Block | minecraft:block_press | 按钮被按下 | |
| Attach Block | minecraft:block_attach | 绊线 is set | |
| 打开容器 | minecraft:container_open | 打开一个容器 | |
| 12 | 使用打火石 | minecraft:flint_and_steel_use | 使用打火石 |
| 放置方块 | minecraft:block_place | 方块被放置 | |
| 放置液体 | minecraft:fluid_place | 液体被从桶中倒出 | |
| 13 | 破坏方块 | minecraft:block_destroy | 方块被破坏 |
| 装起液体 | minecraft:fluid_pickup | 液体被装进桶中 | |
| 14 | 使用钓鱼竿 | minecraft:fishing_rod_cast | 玩家使用钓鱼竿 |
| 活塞缩回 | minecraft:piston_contract | 活塞收回 | |
| 15 | 收回钓鱼竿 | minecraft:fishing_rod_reel_in | 玩家收回钓鱼竿 |
| 活塞伸出 | minecraft:piston_extend | 活塞伸出 | |
| 爆炸 | minecraft:explode | 某种物体爆炸 | |
| 闪电击中 | minecraft:lightning_strike | 闪电击中 |
数据值
ID
| 名称 | 命名空间ID | 本地化键名 |
|---|---|---|
| 红石比较器 | comparator | block.minecraft.comparator |
| 名称 | 命名空间ID |
|---|---|
| 方块实体 | comparator |
基岩版:
| 红石比较器 | 命名空间ID | 数字ID | 本地化键名 |
|---|---|---|---|
| 不输出信号 | unpowered_comparator | 149 | tile.unpowered_comparator.name |
| 输出信号 | powered_comparator | 150 | tile.powered_comparator.name |
| 物品 | comparator | 404 | item.comparator.name |
| 名称 | 命名空间ID |
|---|---|
| 方块实体 | Comparator |
方块数据
在基岩版中,红石比较器的方块数据指定其朝向、模式和激活状态。
| 位元 | 值 |
|---|---|
| 0x1 0x2 |
一个两位字段存储从0到3的值,指定红石比例器的朝向:
|
| 0x4 | 在减法模式(前面的“红石火把”发亮)设置此位元。 |
| 0x8 | 处于激活状态(任何信号强度)时设置此位元。 |
方块状态
| 名称 | 默认值 | 接受值 | 描述 |
|---|---|---|---|
| facing | north | northsoutheastwest | 从比较器的“输出”侧到“输入”侧的方向, 即放置比较器时玩家背对的方向。 |
| mode | compare | comparesubtract | 指定红石比较器的当前模式。 |
| powered | false | truefalse | 如果红石比较器被激活,则为true。 |
基岩版:
红石比较器和激活的红石比较器:
| 名称 | 默认值 | 接受值 | 描述 |
|---|---|---|---|
| direction | 0 | 0—3 | 从比较器的“输出”侧到“输入”侧的方向, 即放置比较器时玩家背对的方向。
|
| output_subtract_bit | false | truefalse | 指定红石比较器的当前模式。 |
| output_lit_bit | false | truefalse | 在不使用命令放置这两个方块的情况下,如果不是激活的红石比较器,则为false,如果是激活的红石比较器,则为true。 |
方块实体
红石比较器具有与其相关联的方块实体,它保存关于此方块的附加数据。红石比较器的方块实体ID为comparator。
- 方块实体数据
- 方块实体共通标签
- OutputSignal:表示此红石比较器的模拟信号输出强度。
基岩版:
- 方块实体数据
- 方块实体共通标签
- OutputSignal:表示此红石比较器的模拟信号输出强度。
视频
历史
| Java版 | |||||||
|---|---|---|---|---|---|---|---|
| 2012年11月24日 | Jeb表示可能会在Minecraft中加入一个“电容器”。 | ||||||
| 2012年12月27日 | Dinnerbone发布了的原始版本的“比较器”的图片,并表明它将替代“电容器”,其中有可变化、交替的输入。 | ||||||
| 2013年1月2日 | Dinnerbone又发布了一张关于比较器的图片。图片中显示了一个数模转换器,其中使用比较器作为主要的方块。 | ||||||
| 1.5 | 13w01a | File:Redstone Comparator JE1.png | |||||
| 13w01b | 在比较器中加入了1个游戏刻(1⁄2)的延迟以修复漏洞。 | ||||||
| 加强了红石比较器检测容器的能力。 | |||||||
| 13w02a | |||||||
| 更改了红石比较器检测容器的算法,容器中有一个物品时比较器就会输出的信号。 | |||||||
| 13w02b | 比较器现在将大箱子判定为一个容器。 | ||||||
| 13w03a | 现在当命令方块执行命令成功后,比较器会发出信号。 | ||||||
| 比较器现在在探测铁轨上检测容器矿车。 | |||||||
| 13w04a | 比较器现在可以检测唱片机。 | ||||||
| 13w05a | 比较器现在不再不断地使方块更新,延迟保持一致,从侧面的输入不再导致脉冲输出。 | ||||||
现在不再使用方块150(powered_comparator);方块149(unpowered_comparator)的激活状态现在是8秒。 | |||||||
| 13w05b | 比较器延迟从1个游戏刻(1/2红石刻)更改为2个游戏刻(1个红石刻)。 | ||||||
| 红石比较器的延迟更改为1红石刻。 | |||||||
| 13w09c | 现在装有3个水瓶的酿造台旁边的红石比较器的信号强度与装有3个水瓶1种成分的酿造台相同。 | ||||||
| 1.6 | 13w18a | 红石比较器现在能检测末地传送门框架和炼药锅了。 | |||||
| 1.7.2 | 13w37a | 方块149 (unpowered_comparator) 和150 (powered_comparator)的物品形式被移除了。 | |||||
| 1.8 | 14w04a | 红石比较器现在能检测物品展示框了。 | |||||
| 14w28a | 红石比较器现在能检测蛋糕了。 | ||||||
| 1.9 | 15w42a | 为酿造台添加了烈焰粉燃料槽后,有5个储存槽位而不是4个。与原来的输出信号值对比如下所示:
| |||||
| 15w47a | 现在红石比较器可以输入红石块的红石信号。 | ||||||
| 1.13 | 17w47a | 红石比较器的3个ID被合并成一个ID:comparator。 | |||||
| 比较器现在渲染底面。 | |||||||
| 在扁平化之前,这些方块的数字ID是149和150,物品的是404。 | |||||||
| 1.14 | 18w43a | ||||||
| 19w02a | 比较器现在可以检测讲台。 | ||||||
| 19w03a | 比较器现在可以检测堆肥桶。 | ||||||
| 1.15 | 19w34a | 比较器现在可以检测蜂巢和蜂箱中的蜂蜜储存量。 | |||||
| 1.16 | 20w06a | 现在更改了计算红石比较器输入信号的方式。 | |||||
| 20w07a | 由于下界石英可以通过与猪灵以物易物来获得,红石比较器成为可再生资源。 | ||||||
| 20w11a | 现在还原了20w06a中对红石比较器输入信号的计算方式的更改。 | ||||||
| 20w12a | 比较器现在可以检测重生锚的能量。 | ||||||
| Java版(即将到来) | |||||||
| 1.17 | 20w49a | 比较器现在可以检测Sculk_Sensor的振动频率。 | |||||
| 携带版Alpha | |||||||
| 0.14.0 | build 1 | ||||||
| 携带版 | |||||||
| 1.0.0 | alpha 0.17.0.1 | 比较器现在可以检测末地传送门框架。 | |||||
| 1.0.5 | alpha 1.0.5.0 | 现在当命令方块执行命令成功后,比较器会发出信号。 | |||||
| 1.1.0 | alpha 1.1.0.0 | 比较器现在可以检测潜影贝。 | |||||
| 基岩版 | |||||||
| 1.2.0 | beta 1.2.0.2 | 比较器现在可以检测唱片机。 | |||||
| 1.10.0 | beta 1.10.0.3 | ||||||
| 1.11.0 | beta 1.11.0.1 | 比较器现在可以检测烟熏炉、高炉、讲台和堆肥桶。 | |||||
| 原主机版 | |||||||
| TU19 | CU7 | 1.12 | Patch 1 | ||||
| TU31 | CU19 | 1.22 | Patch 3 | 红石比较器现在能检测物品展示框了。 | |||
| 1.90 | |||||||
| New Nintendo 3DS版 | |||||||
| 0.1.0 | |||||||
漏洞
Template:Issue list

