当前位置:网站首页 > Java教程 > 正文

java红石教程



1.红石电路的物质基础

制作规模稍大的红石电路,用量最大的通常是红石粉,除了放在地上用作导线外还用于合成其他的红石电路元件。

红石粉可以通过开采红石矿石来获得,该矿石会出现在y轴坐标16以下(1.17以下,不含),需要铁镐挖掘。

某些地方也会自然生成红石,比如丛林神殿和地牢的奖励箱子。

当然还有一些其他的物质基础后面会讲到。


2.基础概念:红石电路的状态和计时

1)方块和红石线的状态

方块状态可分为无充能,弱充能和强充能。

未充能时方块不和红石之间作用;

弱充能可以使机械工作,比如铁门打开,活塞伸出;

强充能不仅可以起到弱充能的所有作用,还可以激活附近的红石线。

那怎样达到这些情况呢?

为达到弱充能,需要用通电的红石线对着一个方块,那么它就弱充能。

达到强充能方法较多,后面会讲到。

红石线也分为充能和未充能两种状态:

红石粉右键地面即可放置红石线,没有接入电路时,红石线呈暗红色,即为未充能;

紧贴强充能方块的红石线拥有15的信号强度,此时为最亮的红色;

从它开始,每延伸1根红石线强度减1,颜色变暗,减到0时又变为未充能。

红石会和相邻的高度相差不大于1格的红石自动连接。

总结:信号强度的概念

上文已经提到红石线传递信号时,随着距离的延伸信号变小的情况。

其实,强充能、弱充能和无充能三种状态,指的就是红石信号强度的取值范围。

强充能--->信号强度为1~15,能使得贴靠的红石线充能且信号强度也为15;

(比较器强充能后能量为比较器输出能量)

弱充能--->信号强度为1~15,除了红石线能使与其相连的红石线和门、发射器、红石灯等方块获得能量外,一个弱充能的方块似乎并不能做什么;

(比较器输出能量为方块获得的信号强度)。

无充能--->信号强度为0,什么也不能做。

2)红石电路的时间单位

Minecraft游戏中的时间不是连续变化的,而是以一个一个极短的时间段的形式,“跳跃”变化的。每经过一个这样的时间段,游戏进行一次状态更新,例如小麦和紫颂植物在尝试长大。我们把这个极短的时间称为“游戏刻”。

如果你的游戏运行非常流畅,完全没有卡顿的情况下,1游戏刻等于现实生活时间的0.05秒,也即20游戏刻=1秒。

而对于红石电路,红石电路随着时间进行的状态改变也不是连续发生的,而同样是在极短的时间段中发生的。我们把红石电路每次改变状态的这个极短时间段称为红石刻。红石刻的长度依赖于游戏刻,1红石刻=2游戏刻,也即在完全不卡顿的状态下,1红石刻等于现实生活时间的0.1秒,即10红石刻=1秒。

通常将游戏刻和红石刻统称为刻。(英语Tick,复数形式Ticks)

在专门介绍红石电路的文章,例如本文中,当提到“刻”或Tick的时候,常常特指红石刻

为了避免混淆,特此说明。


3.基础概念:产生红石信号,和利用红石信号控制方块的方式

1)发生器

我们可以把产生红石信号的方块叫成“发生器”。

发生器本质上是一个在某些条件下能让自己的六个面,或者某几个面强充能的方块。

例如红石块六个面都是强充能;

按钮和拉杆在其贴靠的面上是强充能;

红石中继器上表面有个箭头,在这个箭头所指的面上强充能。

(这里指的是原版MC的红石中继器。另有红石力量2模组的中继器,功能相似但更加强大,为了简单起见以下仅介绍红石中继器并简称中继器,为避免引起混淆,特此说明。)

发生器有许多种。任何一个完整的非透明方块被强充能时是一个发生器,不被强充能时则不是发生器。除了这种情况,有一些方块专门作为红石电路中的发生器,稍微接触红石电路的玩家都不会感到陌生。

这些发生器可分两类:

一类是只要放置在地上就能稳定地、无条件地产生红石信号,例如红石火把、红石方块。

区别在于:

1.    红石火把所附着的方块被强充能时会熄灭,不再产生红石信号,而红石块不能;

2.    红石块本身就是一个强充能方块,而红石火把不是一个强充能方块;

3.    红石火把能够强充能上方的方块,而红石块不能弱充能四周方块。

要点:红石块会改变红石的朝向,但强充能方块不会。

另一类只在满足某些条件时产生红石信号,相当于程序算法里的逻辑判断或现实中电路里的传感器。包括但不限于下面这些。名称后的括号写出了产生信号的条件。

拉杆(有开关两个位置,位置为“开”时)

按钮(按下之后,弹起来之前)

中继器/比较器

这两个发生器将详细解释,因为这将对之后的说明有很大的帮助。

中继器:

当接收到来自后方的红石信号时,延迟 (档位)Ticks 后,(这里的Ticks指的是红石刻,10红石刻 = 1秒) 对前方产生信号强度为15的红石信号。

如果侧面接收到其他中继器的红石信号时,检测状态是否为充能,如果充能,持续充能,无视后方是否接收红石信号,直到侧面红石信号消失,返回正常状态。如果未充能,则无论后方是否充能,前方都不会产生信号。,直到侧面红石信号消失,返回正常状态。(即锁存)

阳光/月光传感器(白天/晚上,实际上是检查游戏时间的tick数而不是检查天亮了没有)

陷阱箱(被打开的瞬间)

绊线钩(绊线被生物踩到、绊线上掉落物品、绊线被箭射中(待验证)、绊线被非剪刀物品切断)

侦测器(观察者)(方块更新时)

各材质的压力板

(原版木压力板:被踩到/被掉落物碰到/被箭射中时)

原版石压力板:被踩到时

金压力板、铁压力板见介绍

木匠方块模组的木匠压力板:有三种模式(玩家生物掉落物均可触发/仅生物可触发/仅玩家可触发)可以由同一模组的木匠锤子进行切换)

有关这些物品的介绍,请点击超链接。

2)效应器

我们可以把利用红石信号进行工作的物品叫做效应器:

1.活塞/粘性活塞

接收到红石信号时,两者都推方块;

红石信号消失时,活塞只收回活塞头;

粘性活塞则判断活塞头有没有贴着可以拉动的方块,如果有,就把它拉回来。

2.投掷器

接收到红石信号时,随机选1个内容物投掷到面对的方向,如果对应的方向有容器,那么传输该内容物到容器中;

红石信号消失时无动作。

换句话说,如果想让投掷器连续扔出物品,就要不断地通、断红石信号,可以采用连续按按钮(按钮能自动断开),反复拉拉杆和使用高级一点的脉冲电路等方法。

3.发射器

接受到红石信号时,随机选取1个内容物,检查它是什么:

如果是一般的物品,像投掷器一样投掷;

如果是下列物品:

箭/火焰弹:从其面朝的方向(那个张着嘴的脸)发射,射程相当远。如果射出的是箭,发射器能在它的脸被某些方块遮住的情况下将箭射到没有被遮住的情况下应该射到的位置。这些方块包括藤蔓(还记得丛林神殿里的机关吗)

水桶/岩浆桶:把它变成空桶留在发射器里,在面朝的那一格放置一格水/岩浆(就是把桶里的东西倒出来)

空桶:如果发射器面朝着一格水或岩浆,让它消失,然后将空桶变成水桶或岩浆桶(就是把倒出来的液体收回去)

对于其他模组添加的液体桶,具体情况有待验证。

喷溅药水:对着面朝的方向使用药水,就像玩家右键扔出喷溅药水那样。

TNT:放置在面前并立即点燃。

4.木门/铁门/活板门/铁活版门/栅栏门,接收红石信号时开,红石信号消失时关。其中铁门和铁活板门只能使用红石信号开关。

特别地,门的接收信号范围不仅限于紧靠弱充能方块,它能接收相邻的发生器的信号,这导致了在门前铺压力板就可开门。

对于门,如果放置在一个特殊的角度,可以让它在接受信号时处于的位置恰好挡住出口,做出一个“接收信号时关,没有信号时开”的门。某些解谜地图会见到这种技巧,并可以做出打不开的门。

5.TNT,受到红石信号时将被点燃。

6.红石灯,接收红石信号时点亮。

7.音符盒,接收红石信号时播放对应的声音

3)红石的一些术语

红石脉冲:

红石信号快速开关一次。

红石机械:

由发生器、红石线和效应器组成的装置。

高频/低频红石、红石钟:

以一定的速率不断产生红石信号的装置。

以频率分为高频、低频两种。

它们统称红石钟。

透明方块/非透明方块/实体方块/非实体方块:

如果有一个方块挡在红石上方1格,使得红石粉无法与相邻的比其高1格的红石粉连接,那么该方块就是一个非透明方块/实体方块。

实体方块可以被充能。

反之则是透明方块/非实体方块。

非实体方块无法被充能。


4.进阶概念:简单的逻辑结构及其应用

1)简单的逻辑代数

逻辑代数看上去是个很厉害的词,但是我们仅仅为了便于下文内容的理解,来了解一些非常简单的逻辑代数。

我们不妨把“充能”状态记为一个任意大于0的数;

而把“未充能”状态记为0.

逻辑结构常常需要处理多个输入之间的关系,也就是对这些输入进行逻辑运算。

我们在日常生活中也会用到三种基本的逻辑:

逻辑“或”---->所有的输入条件中,只要有一个大于0,输出就大于0。

这种运算可以理解为将所有的输入相加。最后的得数大于0,就有输出;等于0,就不输出。

因为只要有一个加数大于0,全部求和的得数就会大于0(定义里是没有负数的哟)

所以理解为加法符合我们的定义。

逻辑“与”---->所有的输入条件中,只要有一个为0,输出就为0。

这种运算可以理解为将所有的输入相乘。最后的得数大于0,就有输出;等于0,就不输出。

只要有一个乘数是0,全部相乘的得数就会为0

所以理解为乘法符合我们的定义。

逻辑“非”---->输入为0,就输出非0;输入非0,就输出为0

说白了就是相反,很简单的。


2)红石电路中这样进行逻辑运算

我们在这一节的标题中提到了逻辑结构。

所谓逻辑结构,就是用来在Minecraft中,以红石电路结构的形式,对红石信号进行逻辑运算的方块结构。由于逻辑结构相当于一个“门”,让信号通过并作出一定的反应,因此又将逻辑结构称为逻辑门或者

逻辑结构有很多很多种。但是这里只介绍简单的逻辑结构,也就是对应三种简单逻辑运算的结构。

每种结构的摆放方法都不只有这里介绍的这一种。你可以自己发现各种五花八门的摆放方式。

非门

如果A为输入,B为输出;

如果A输入红石信号,则B不输出红石信号。

如果A不输入红石信号,则B输出红石信号。

参考摆放方法:

红石线
非透明方块 红石火把 红石线

其中左侧红石线连接输入端,而右边红石线作输出端。

左侧红石线有信号时,红石火把熄灭,右端红石线无充能;

左侧红石线无信号时,红石火把熄灭,右端红石线强充能。

这样就起到了逻辑运算“非”的功能。

应用举例:

  1. 在没有月光传感器的早期原版MC,利用阳光传感器和非门感应夜晚。
  2. 将另一个非门的输入端连接到非门的输出端,由于负负得正,输出端的充能状态将与输入端相同,且信号强度增强到15.这种结构可以代替中继器,能节省一点红石粉。每使用1个这样的结构作为中继就会给电路造成1刻延迟。经计算,长距离红石电路中使用这个方法产生的延迟略长于使用中继器产生的延迟。

与门

如果A、B、C...... 是输入,α 为输出;(输入不限数量多少,>1就行)

只有所有输入都提供红石信号,α 才会输出红石信号。

或门

如果A、B、C...... 是输入,α 为输出;(输入不限数量多少,>1就行)

只有所有输入都不提供红石信号, α 才不会输出信号。

反之如果一个输入提供了信号, α 就会输出信号。

版权声明


相关文章:

  • 安卓 java 教程 pdf2024-11-22 23:34:05
  • java教程 ibm2024-11-22 23:34:05
  • java基础视频教程-2024-11-22 23:34:05
  • java公众号制作教程2024-11-22 23:34:05
  • java爬虫教程 知乎2024-11-22 23:34:05
  • java嵌套循环教程2024-11-22 23:34:05
  • java squid 教程2024-11-22 23:34:05
  • java构造方法教程2024-11-22 23:34:05
  • java系统跳转教程2024-11-22 23:34:05
  • java入门经典教程52024-11-22 23:34:05