设为首页收藏官网网盘国家资源立人课堂 今天是: 2022-09-09    美好的一天,从现在开始投稿

立人创客乐享社区

 找回密码
 立即注册
立人创客乐享社区 首页 游戏编程 查看内容

红石中继器培养逻辑思维

2021-1-3 15:11| 发布者: 信息中心| 查看: 63| 评论: 0|原作者: 信息中心

摘要: 红石中继器 (Redstone Repeater)特性红石中继器(Redstone Repeater)有 4 个特性:提升强度单向传输制造延迟锁存状态 1.提升强度红石中继器能够将红石信号强度重新提升到 15 单位. 所以, 我们可以使用中继器将红石信号 ...
红石中继器 (Redstone Repeater)
特性
"红石中继器(Redstone Repeater)"有 4 个特性:
  • 提升强度
  • 单向传输
  • 制造延迟
  • 锁存状态
1.提升强度
"红石中继器"能够将红石信号强度重新提升到 15 单位. 所以, 我们可以使用"中继器"将红石信号传输地很远.
"提升强度"是"中继器"最主要的功能, 这也是为什么叫"中继器"的原因 -- "中间提升能量供其继续";
2.单向传输
只有一个方向的电流可以通过"红石中继器", 其特性类似于现实生活的"二极管"1. "红石中继器"会从后端接收红石信号, 然后从前端发出更新强度后的红石信号. 有凹槽(滑轨)和火把的是"后端", 只有火把的是"前端":
在游戏中放置"中继器"时, 靠近角色的一侧就是"后端", 所以我们应该面朝想要电流流向的方向放置中继器:
根据之前讨论的"红石粉"的连接特性, 相邻的红石粉之间会自动连接, 而不会接入相邻的红石设备2. 那么利用"单向传输"特性, 在红石设备和红石粉之间放置"中继器", 可以保证接入红石设备, 并且线路之间互相"绝缘":
"红石比较器"也有相同的单向传输特性, 但是由于其侧面也可以输入, 所以通常不使用其实现"单向传输", 而使用"中继器"
3.制造延迟
"红石中继器"能够延迟红石信号的传递.
延时对于某些需要特定时序才能正常工作的复杂机械非常关键, 比如活塞门. 中继器的默认状态是延迟 1 红石刻^3, 对着"中继器"点击鼠标右键, 可以将延迟切换为 0.2 秒, 0.3 秒 和 0.4 秒 (加上默认的 0.1 秒, 一共 4 个档位). 而且, 我们可以通过同时使用多个"中继器"来制造更长的延迟时间.
4.锁存状态
在"红石中继器"的侧面放置一个与之方向垂直的"红石中继器"或者"红石比较器", 当后者被激活时, 前者的红石状态("充能"或者"未总能")会被锁住. 也就是说, 如果前者之前处于充能状态, 后者被激活后, 即使撤掉了前者的红石供能元件, 前者还是会处于充能状态. 这相当于制造了一个"电子锁", 可以用于将门闩死, 或者制造一个 1 位的内存单元. 处于锁存状态的中继器会出现一个挡板标识:
合成方法
物品
材料合成配方
红石中继器
Redstone Repeater
红石火把 + 红石粉 + 石头
Redstone Torch + Redstone + Stone
红石比较器 (Redstone Comparator)
"红石比较器 (Redstone Comparator)" 能够比较后面和侧面输入的红石信号强度, 也能够用来检测容器的填充度.
特性
"红石比较器"有 4 个特性:
  • 比较红石信号
  • 检查容器的填充度
  • 输送红石信号
  • 单向传输
1.比较红石信号
"红石比较器"有 2 个输入端和 1 个输出端. "主输入端"在靠近凹槽(滑轨)的一侧, "侧输入端"在侧面, "输出端"在有灯的一侧:
"红石比较器"有 2 种模式:
  • 比较模式:
    • 当"侧输入端"的信号强度比"主输入端"强, 则"输出端"输出的信号强度为 0;
    • 其余情况下("侧输入端"的信号强度比"主输入端"弱或者相等), "输出端"输出的信号强度与"主输入端"的信号强度相同;
  • 减法模式:
    • 当"侧输入端"的信号强度比"主输入端"弱, 则"输出端"输出的红石信号为"主输入端"信号强度减去"侧输入端"信号强度;
    • 其余情况下("侧输入端"的信号强度比"主输入端"强或者相等), "输出端"输出的信号强度为 0;

换个说法: 如果我们用字母 A 表示"主输入端", 用字母 B 表示"侧输入端", 用字母 C 表示"输出端", 那么:
  • 比较模式:
    • 当 B > A, 那么 C = 0
    • 当 B ≤ A, 那么 C = A
  • 减法模式:
    • 当 B ≥ A, 那么 C = 0
    • 当 B < A, 那么 C = A - B

"比较模式"和"减法模式"有个共性: 当"侧输入端"的信号大于"主输入端"的信号时, "输出端"的信号强度为 0 当"侧输入端"的信号和"主输入端"的信号相等时, "输出端"的信号强度会根据模式的不同而不同:
  • 在"比较模式"下, 输出的信号强度和"侧输入端"以及"主输入端"相同;
  • 在"减法模式"下, 输出的信号强度等于 0;
那么, 如何切换模式呢?
  • 默认情况下, 比较器处于"比较模式", 这时"比较器"前面的火把是暗的
  • 对着"比较器"点击鼠标右键, 将切换成"减法模式", "比较器"前面的火把会点亮
2.检查容器的"填充度"
"红石比较器"可以检查容器的填充度, 然后输出等比例的红石信号强度.
什么叫"填充度"? 比如说, "箱子(Chest)"一共有 27 格储物空间, 那么如果有 10 格被填满(如果是可堆叠的物品, 必须堆叠到最高才算填满 1 格, 比如说草方块可以堆叠 64 个, 那么一格里面必须有 64 个草方块才算填满 1 格)
比如说"漏斗", "漏斗"共有 5 格存储空间, 如果填满 3 格, 填充度为 3/5 = 60%, 那么占据了 3/5 = 60% 的空间, 则比较器会输出 15 60% = 9 单位强度(满格红石能量强度是 15 单位强度): 如果 5 格都装满, 则代表 100% 填充, 那么相连的比较器也会输出 100% 的强度, 即 15 100% = 15 单位强度.
"红石比较器"可以检查以下容器的填充度(你可以认为, 只要带有物品栏的物品都可以被检查填充度):
  • 箱子(Chest)
  • 陷阱箱(Trapped Chest)
  • 潜影盒(Shulker Box)
  • 漏斗(Hopper)
  • 熔炉(Furnace)
  • 投掷器(Dropper)
  • 发射器(Dispenser)
  • 唱片机(Jukebox)
  • 酿造台(Brewing Stand)
  • "探测铁轨(Detector Rail)"上的"带漏斗的矿车(Minecart with Hopper)"
  • "探测铁轨(Detector Rail)"上的"带箱子的矿车(Minecart with Chest)"
已知物品数量, 求解信号强度
"信号强度" = 向下取整 [ 1 + ("所有物品栏的满度之和" / "物品栏总数") * 14 ]
其中, "(单格)物品栏的满度" = "单格中的物品数" / "此类物品最大堆叠数"
以"漏斗"和"箱子"作为例子, 假设两者都有两格装了 64 个木板, 都有一格装了 9 格木板:
那么, 对于"漏斗"来说, 比较器输出的信号强度是:
  • 1 + ( ( 2 + 9/64) / 5 ) * 14 = 6.99375
  • 6.99375 向下取整是 6
  • 所以输出的信号强度是 6 个单位强度
对于"箱子"来说, 比较器输出的信号强度是:
  • 1 + ( ( 2 + 9/64) / 27 ) * 14 = 2.10995
  • 2.10995 向下取整是 2
  • 所以输出的信号强度是 2 个单位强度
实际输出的强度和我们的计算是一致的:
已知信号强度, 求解物品数量
如果你想要输出特定强度的红石信号, 那么就需要计算填充多少东西
所需物品数 = 两者取较大值 { 向上取整 [("容器总格数" * 64 / 14) * ("目标信号强度" - 1)], "目标信号强度"}
以"漏斗"和"箱子"作为例子, 假设我们需要输出 6 个单位强度, 放置的是木板(堆叠上限是 64).
"漏斗"需要的物品数:
  • 计算结果是 (5 * 64 / 14) * (6 - 1) = 114.28571, 向上取整后为 115;
  • 115 (计算结果) 和 6 (目标信号强度) 比较, 较大的数是 115, 所以需要的物品总数是 115
"箱子"需要的物品数:
  • 计算结果是 (27 * 64 / 14) * (6 - 1) = 617.14285, 取整后为 618;
  • 618 (计算结果) 和 6 (目标信号强度) 比较, 较大的数是 618, 所以需要的物品总数是 618
把计算出的物品数装入"漏斗"和"箱子":
实际输出的红石信号强度的确是我们要的 6 单位强度:
如果我们把计算出的物品数减去 1 呢 (也就是"漏斗"装 114 个木板方块, "箱子"装 617 个木板方块)?
只能输出 5 个单位强度:

3.检测"唱片机"播放的唱片
当"比较器"放在激活的"唱片机(Jukebox)"旁边时, 会根据播放的唱片的 ID 输出不同强度的红石信号:
唱片 ID 名称
输出的红石信号强度

13
1

cat
2

blocks
3

chirp
4

far
5

mall
6

mellohi
7

stal
8

strad
9

ward
10

11
11

ait
12
4.输送红石信号
"红石比较器"也可以用来输送红石信号, 不会对红石信号产生任何改变, 甚至不会消耗红石信号强度:
5.单向传输
"红石比较器"也具有方向性. 放置"比较器"时, 靠近你的一侧就是"后端", 所以我们应该面朝想要电流流向的方向放置"比较器":
根据之前讨论的"红石粉"的连接特性2, 相邻的红石粉之间会自动连接, 而不会接入相邻的红石设备. 那么利用"单向传输"特性, 在红石设备和红石粉之间放置"比较器", 可以保证接入红石设备, 并且线路之间互相"绝缘":
"中继器"也有相同的单向传输特性, 而且大家通常使用"中继器"来实现单向传输, 而不是"比较器". 这是因为比较器的侧面也可以输入, 容易造成超出预期的影响.
合成方法
"红石比较器(Redstone Comparator)"的合成方法:
物品
材料合成配方
红石比较器
Redstone Comparator
红石火把 + 下界石英 + 石头
Redstone Torch + Nether Quartz + Stone
合成比较器需要的"下界石英", 只能在"下界"4才能找到. 当然, 如果你是"创造模式"5, 就不需要操心这个问题.
比较器的简单应用
  • 制作锁: "比较器"处于"比较模式", 而"主输入端" 13 单位强度, "侧输入端" 15 输入强度, "侧输入端" 大于 "主输入端", 所以"比较器"输出强度为 0; 这个结构可以用于"门闩", 比如说自动门加上这个结构, 平常可以使用自动门, 回家后可以闩住门, 保证自动门无法被开启.
  • 指定输出信号: 假设我们想要 2 个单位强度. 将"比较器"切换到"减法模式", 让"主输入端"输入 15 单位强度, 让"侧输入端"输入 13 单位, 正好 15 - 13 = 2
  • 制作脉冲电流: 将"比较器"切换到"减法模式"
    • 阶段 1: "主输入端" 15 单位强度, "侧输入端"输入强度为 0, 所以"输出端"强度为 15 - 0 = 15;
    • 阶段 2: "输出端"强度为 15, 走到"侧输入端"时强度为 13, 此时, "主输入端"的 15 减去"侧输入端"的 13 等于 2, 所以"输出端"的强度变成 2;
    • 阶段 3: ""输出端"的强度为 2, 走到"侧输入端"时强度为 0, 所以"输出端"强度为 15 - 2 = 13
    • 上面的"阶段2"和"阶段3"循环往复, 形成脉冲电流


1. "二极管"具有两个电极, 只允许电流从"正极"流入, 从"负极"流出. 我们会利用二极管的这种单向导电性, 把方向交替变化的"交流电"变成单一方向的脉冲"直流电".
2. 红石粉的连接特性请参考 传输元件
3. 1 个"红石刻" = 0.1 秒, 1 个"游戏刻" = 0.05 秒. 详细解释见这里
4. Minecraft 的地下世界/地狱. 我们可以通过制作"传送门"到达下界.
5. 请参考另一本书 -- "Minecraft 荒野探险家"

1

路过

雷人

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

发表评论

最新评论

Loading...
展开
返回顶部