|
|
51CTO旗下网站
|
|
移动端

2.1 制作BUD

《MINECRAFT我的世界 高手进阶攻略》第2章自动化农场,本章介绍相关内容之前,首先要弄清一个非常重要的概念:BUD开关。在检测农作物的成熟和自动收获方面,这是一个非常重要的元素。本节为大家介绍制作BUD。

作者:方红琴 等译来源:人民邮电出版社|2017-09-11 19:11

第2章 自动化农场

MINECRAFT我的世界 高手进阶攻略

本章将介绍以下内容。

建造自动化农场。

检测何时能够收获甘蔗。

触摸一个按钮便可以摇动南瓜和西瓜,让它们掉落。

指派村民打理自己的农场。

使用矿车自动收集、卸载收获的农产品,并对农产品进行分类。

在MINECRAFT中,耕种是必须的工作,至少最初的时候需要如此。种植农作物是收集资源使你保持体力全满状态的最佳方式,让你可以与各种生物一路奋战,直到与末影龙的最终决战。但打败长着尖牙的末影龙之后,就不需要继续耕种了吗?其实,多少还是需要一点食物的。因为即使向上跳一下也是会稍稍减少健康值的,疾跑也是如此,况且无论你做什么,敌对生物的威胁都会存在。

这里假设你已经知道如何创建农场,如果你能够以人性化的方式布置农场就更好了,这样可以更方便地获得收益。如果你不会创建农场,可以参见《MINECRAFT我的世界新手完全攻略》一书的第6章“农业生产”。

尽管使用基本的方法就能建造农场,但本书将介绍一个更高级的玩法——建造自动化农场。如果使用几个活塞、水流和一些红石就能建立农场,何必要亲自动手呢?

另一方面,通过建造自动化农场,可以更深入地了解红石背后的逻辑,例如接下来将要介绍的方块更新检测器(Block Update Detector,下文简称BUD)。

在写作本书时,还不能完全自动地种植全部农作物。在原版游戏中,还没有过自动播种的方法,虽然村民会亲手种植和收获小麦、土豆和胡萝卜。农作物成熟之后,村民可能会将农作物占为己有,这样就会造成一定的冲突。

在介绍相关内容之前,首先要弄清一个非常重要的概念:BUD开关。在检测农作物的成熟和自动收获方面,这是一个非常重要的元素。

2.1 制作BUD

BUD是一种机关,当附近有方块更新变化时,BUD会触发红石信号。实际上,此功能并非是刻意置入游戏的,因为游戏代码本身采用事件驱动程序设计模式,所以自然就具备了这种关联更新的功能。在游戏中,无论改变特定方块空间特性的事件何时发生(如在之前未占用的空间放置方块、仙人掌生长至上面的空间、熔炉煅烧或冶炼完物品),代码都会检查周围的方块,查看这些方块是否也需要更新。随时检查每个方块是否需要更新将会耗费大量的带宽,使游戏运行变得非常慢,因此这种事件驱动模型通过查看周围的方块是否需要更新,以保证游戏的运行稳定。

BUD开关具有内在的不稳定状态。也就是说,方块需要更新时,不会立即执行更新,直到附近变化的方块触发它们时才更新——此时,代码也会转而关注邻近的方块,消除它们的不稳定状态,迫使它们更新。这将启动红石脉冲,代码继续向前执行,使得开关重新返回不稳定的状态,等待下一次更新。

在Minecraft Wiki和许多其他网站上都有BUD开关的详细资料,本书只详细介绍如何在自动化系统中使用BUD开关。也许最简单的方法是理解如何根据基本概念创建BUD开关。

注意

平地居民

你将会看到,本章及其他章节的屏幕截图背景都是光秃秃的,这样你就可以更清楚地看到自动化农场的布局,不会受到其他因素干扰。你也可以创建这种平地进行各种实验,具体操作步骤为打开一个新世界,选择More?World?Options…,将World?Type设置为Superflat。单击Customize和Presets按钮,滚动到列表的底部,选择Redstone Ready。

图2.1所示为在正常方块上横向放置的粘性活塞,活塞的前面附有红石方块。现在将一点红石粉放在活塞下面,这样就完成了一个红石振荡器。粘性活塞将会一直保持运动。

当活塞处于关闭位置时,红石方块为红石粉充能,向活塞所在的方块提供能量,致使活塞延伸。随着活塞的延伸,红石方块移出红石粉所在的范围,使活塞失去信号,致使活塞收缩。一旦收缩,红石方块重新向红石粉充能,致使活塞再次延伸,依此类推。这就是它的整个工作过程,就像一个狂热的拳击运动员一样不停地来回运动,实际上这是一个很稳定的电路。

下面对此进行分析。

将另一个常规的方块放在离红石一格的位置(见图2.2),在其较远的一侧附接红石火把,将鼠标指针的“十字形”固定放在火把的顶部,背向红石方块放置一个常规活塞。


可以看到活塞会突然停下来。其实这时活塞不应该停止运动,它应该继续运动,但由于游戏代码有些难以预测,所以活塞停止运动了。电路现在处于不稳定状态。活塞准备开始运动,在更新时它会运动,但这不可预知。

现在完成主要部分:到粘性活塞后面,将任意类型的方块附接至其背面。好啦!现在可以看到粘性活塞运动起来了。同时,随着方块后面红石粉失去能量,红石火把熄灭(红石火把相当于逆变电路,它们处于持续激活状态,直到被另一个信号源充能为止。在这种情况下,随着红石方块移出范围,来自红石粉穿过其所附接方块的电源关闭,使得火把在红石方块移回原来的位置之前可以快速发出一次脉冲)。

移除刚才放置在粘性活塞后面的方块,再次引起更新,同时又一次激活BUD开关。

简单吧?不管怎么样,可以运行了。希望Mojang的工程师尽量不要太快对此部分进行修改,因为当前BUD开关的应用十分广泛。下面是触发方块更新事件的简要列表。

如之前所介绍的,放置和移除方块。

打开或关闭箱子,能够在不改变外观的情况下创建陷阱箱(这样就不需要使用实际的陷阱箱了)。

将熔炉连接至音符盒,当烧炼开始或结束时,会发出声音。

在T形结头处改变铁轨的方向。

水或岩浆流过。

收获小麦、土豆和胡萝卜。

一些植物的生长,例如南瓜、西瓜和仙人掌。虽然小麦的生长不会触发方块更新,这对本章的内容十分重要。

希望读者现在对BUD是如何工作及其工作原理有了深入的理解。BUD确实很有用,下面来看一些实际的例子。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管第一课——网络组建与管理

本书针对初级网管朋友所需掌握的网络组建和网络管理技能,以示例方式编写而成,其主要特点就是实用性和可操作性非常强。 全书共分8章,分...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊