游戏之家 > 游戏库 > 我的世界

我的世界中国版扫射矢量炮怎么做 扫射矢量炮制作教程

如果没有对扫射矢量炮有了解的玩家,那么要制作起来还是挺难的,不过小编在这里会为大家带来“恩氟烷瑞”分享的我的世界中国版扫射矢量炮制作图文教程,希望对大家有帮助哦!

矢量炮是一种通过调节xyz各方向对同一格内的tnt的推力大小来对某一固定范围实行定点打击的红石炮

最早的矢量炮是由Dim神触(滚大幕)制作的Templar系列。

按照xyz轴是否具有可变推力条件

矢量炮分为单线矢量炮(只有一个方向的可变推力,只能实现单线打击)

二维矢量炮(有两个方向的可变推力,能实现平面打击)

三维矢量炮(有三个方向的可变推力,能实现立体打击)。

当然,矢量炮还可以按照常规与非常规分,或者按照地对地,地对空,空对地的分法进行分类,这在之后会有所提及,这里便不细讲了。

扫射矢量炮是在矢量炮定点打击的基础上,安装附加装置让打击点能够发生自动变化,实现自动扫射的矢量炮。这种附加装置我们称为“扫射火控”。而目前实现扫射的火控形式一共有计数,记点,计算三大类,这在之后会有详细的介绍。

首先是一些大家应该都清楚的,发射器是实体方块,它能够被充能

当发射器被各种方式激活的时候,它能够将它的内容物发射出去

如果发射器已经处于激活状态,那么再给发射器一个红石信号将无法激活它(图中的情况就是,我在最右边放了个红石粉却没有让发射器把水收回)这种无法激活的情况就被称作激活锁定。

而发射器对于红石炮的意义就是它能够将TNT以实体的形式发射出来,这样的性质让红石炮的连发成为可能。

接下来就是一些大家可能不知道的,这也是发射器部分的重点

和活塞类似,发射器是有BUD(Block Update Detector,方块更新感应器)的,这意味着它能够像活塞一样接收它上方方块的信号,从而被激活。如果让发射器处于亚稳态,那么此时如果给它一个更新,它就会被激活。

提到发射器的BUD有什么用?这里问大家一个问题,同样是激活3×3的九个发射器,请问是左边的方式好还是右边的方式好?

答案是左边的方式好。为什么?这里补充两个知识

当一种红石元件(不知道怎么描述比较好)处于BUD状态的时候,如果不对它进行更新,那么它所处的状态便不会更改

对于一个发射器而言就是,如果它通过BUD被激活,此时如果不给它一个更新的话,那么它便会处于激活锁定状态,此时再给它一个红石信号是不会让它有所反应的。在红石炮中的表现就是,发射器不会发射tnt。

比如这种情况

大家可以自行尝试一下,这种情况会导致自第二次激活开始,有些发射器便可能不再发射tnt

红石中继器在放置、激活、失去激活时会有一个比较奇特的更新范围,它只会更新其前方方块和该方块的毗邻方块(图中所示染色玻璃的区域)

我们让这些活塞处于亚稳态

放置中继器便会出现这种情况

虽说活塞和发射器都有BUD但是不同之处在于,活塞激活时可以更新周围的区域(或者叫其毗邻方块,即下图红色染色玻璃标出的区域),但是发射器不行,发射器在被激活时是无法更新其毗邻方块的

我们可以通过以下实验进行验证

首先我们要清楚,红石线在放置,破坏,亮起,熄灭的时候会更新其毗邻区域以及其毗邻的毗邻(下图红色染色玻璃标出的区域,包括红石线本身和那个铁块)

我们可以做出以下的实验装置进行验证

图中染色玻璃标识出的为红石线的更新范围,通过对比我们可以发现,右侧装置中只有上方的活塞处于红石线的更新范围(左图黄色染色玻璃标出的位置)下方两个活塞都不在红石线的更新范围之内,其中一个已经处于亚稳态,而另一个如果在上方红石线更新的条件下,也将处于亚稳态

点亮红石线,我们发现三个活塞都伸出了

其原因在于,左上角的活塞会更新左下角的活塞,而左下角的活塞又会更新右下角的活塞,从而三个活塞同时伸出

我们把活塞换成发射器来看看,发射器中都装有箭

点亮红石线,只有左上角的发射器射出了箭

大家可以自行验证一下

那么我们回到我上次留的那个问题(自己挖了个坑往里跳orz事后发现这个问题其实蛮难解释清楚的)

为什么交错的中继器激活会比并排的中继器激活方式要好

首先我们来看并排式的,这是一个前后的示意图

图中红色玻璃标出的发射器(以下简称红发射器)处于有三个能触发BUD的位置,黄色玻璃标出的发射器(以下简称黄发射器)有两个能触发BUD的位置。

既然发射器本身的激活是无法更新其毗邻方块的,那么那些连射的大炮是怎么实现稳定射程的呢,或者说,什么让第一次发射后因为BUD而处于激活锁定状态的发射器被更新而回归原始态呢?

答案就是中继器。之前也向大家展示过中继器的更新范围了。

中继器可以更新这个发射器板中的一个十字形区域。

我们先来分析一下比较简单的黄发射器

从目前的种种现象来看,各种红石器件的更新是按顺序的,同种红石器件的更新也是逐序的,因为我本人也不是太清楚具体的更新顺序,所以我只能穷举一下各种情况了(据说红石线的更新是随机的……简直有毒)

情况1:更新顺序先紫后蓝(那个紫色其实是品红但是为了方便表述我就直接用紫色了)

在紫发射器被强充能后,黄发射器会处于亚稳态,但由于中继器更新不到它,所以它不会被激活。随后蓝发射器被强充能,黄发射器被更新,也被强充能方块激活(具体顺序未知)。在发射器失去激活时,紫发射器首先失去充能,随后蓝发射器失去充能并给黄发射器一个更新,黄发射器回归原始态,所以这种情况不会出问题。

情况2:更新顺序先蓝后紫

在蓝发射器被强充能后,黄发射器被激活,随后紫发射器被强充能,黄发射器处于一个亚稳态。在蓝发射器后的中继器失去激活时,会给黄发射器一个更新,而此时黄发射器正好是处于亚稳态的,这个更新让黄发射器进入了激活锁定状态,随后紫发射器后的中继器失去激活,但是更新不到黄发射器。

第二次激活时,蓝发射器被强充能,同一gametick内,发射器被中继器更新,不过此时发射器依旧算激活锁定状态。这一gametick过后,黄发射器算作被强充能而处于激活锁定状态,此时给它一个红石信号也无法让它被激活。之后失去激活的情况就和第一次一样了。

根据上面的分析,情况二也就是先激活蓝发射器再激活紫发射器的情况下,黄发射器就会出现第二次及其以后的激活不发射物品的情况(如果不给它一个额外的更新的话)

那么红色发射器呢?它的更新情况更加的复杂,不过,其实这些情况只是黄发射器情况的延伸

考虑到对称性,其实红发射器之有三种情况,即蓝蓝紫,蓝紫蓝和紫蓝蓝。大家可以根据前面的分析自己推导一下,只要紫发射器不是最后一个更新,那么红发射器就会一直处于激活锁定状态。

然后我们再来看看这种交叉布线的情况

对于那些只有一个可以触发BUD位置的发射器(比如图中的黄发射器),我们不用考虑,因为在中继器失去激活后带来的更新会让其回归原始态。在这组发射器中,我们只需要考虑红发射器,因为它有三个触发BUD的位置。

红发射器所处的情况其实比较复杂,不过我们可以分两种情况来看,一种情况是红发射器最后更新,一种是红发射器不是最后更新。

情况1:红发射器最后更新

由于红发射器最后更新,所以不管之前它处于什么状态,在所有中继器失去激活后它都将处于原始态。

情况2:红发射器不是最后激活

由于红发射器不是最后激活,所以根据之前的分析,红发射器应该要处于激活锁定状态,但是事实并非如此,红发射器每次都能够正常激活,这是为什么呢?

其实,这个是由红石线的更新导致的。不管红发射器是否处于激活锁定状态,在第二次激活时,由于红发射器后中继器所连的红石线能够给红发射器一个更新(红石线的更新范围之前有提),所以红发射器会回归原始态,这个更新只需要花费1gametick的时间,而中继器激活发射器需要2gametick,所以发射器会再次被激活。那么,有没有可能把中继器改为红石线来让红发射器一直处于激活锁定状态呢?不行。因为在我这种情况下,把中继器改为红石线会改变红石线的指向,有些红石线是不会指向发射器的,自然无法激活它。

不过,从另一个角度考虑,如果不让红石线更新红发射器的话,红发射器依旧有可能一直处于激活锁定状态?

是的,我们可以把装置的布线改成这样

由于红石线更新的随机性,我在每个不同的位置都放红石两次,结果还真的让我找到了一个可以让红发射器一直处于激活锁定状态的位置

我的版本是1.7.10,此时面朝的方向为西,由于红石线更新规律随机,而且每次更新顺序固定(这是好像跟java的版本有关,而且每个版本的顺序可能还不同,所以这个实验的复现性比较差),所以当红发射器后的中继器不是最后一个更新时,红发射器便会一直处于激活锁定状态。

那么,如何避免出现激活锁定状态的情况呢?

发射器墙可以用交错布线,而下图的这种情况,我们有另外一种方式。

有时为了提高空间利用率,我们会采用这样的炮管

而如果直接在发射器上铺红石线的话,又可能出现激活锁定的情况

所以,为了避免出现激活锁定的情况,这样放置发射器时我们不能直接在发射器上铺红石线,不过我们可以这样弄

利用半砖上铺红石线来激活发射器,这里利用了BUD和红石线的更新范围。根据前面的推导,如果看明白的话这里应该可以直接推了,图中的发射器要么没有触发BUD的位置要么只有一个触发BUD的位置,不会出现激活锁定的情况。

所以说我们也不能用下图的方式激活发射器,由于红石线能够对实体方块弱充能(而不会充能半砖),所以会出现有多个触发BUD的位置的发射器。

在有些对射速和稳定性要求比较高的红石炮中,我们会用到这样的压缩装置

这个装置可以提供五个tnt用来压缩炮管中的tnt(具体怎么用之后会讲)

我们可以这样布线

有时候因为方向的限制,我们可能会这样布

但是这样其实是不行的。至于为什么,大家可以自行分析一下(只能说有可能不行,因为那个蛋疼的随机更新顺序。所以,为了保证不被随机所影响,我们布线时要尽量避免BUD影响的情况出现,如果按下图方式激活,图中最远端的那个发射器会处于激活锁定状态)

至于为什么我要画这么大的篇幅来讲发射器?因为扫射矢量炮必须保证每个射程都是稳定的,有一个发射器出问题都不行。而我相信这样对于发射器的详细分析能够让诸位在红石炮调试过程中发现问题时迅速找到问题的根源所在

好了接下来我们来讲实体tnt。因为实体tnt的性质与红石炮炮体的结构有很大的关系,所以炮体的部分我会穿插在实体tnt的内容之中以保证内容的衔接。

关于实体tnt,我们先从wiki上摘下一段话,接着分析(其实也可以直接上源码但是好麻烦orz)

一旦被激活后,TNT 就会变成一个实体。

它会在被激活的TNT方块的中心(+0.5,+0.5,+0.5)生成,它是一个边长为0.98的正方体。

如果它被红石或火激活,它会在40次红石计时(4秒/80次游戏计时)后爆炸。

生成后,被激活的TNT会被给予垂直速度0.2米/刻,随机方向的水平速度0.02米/刻。

如果没有被任何方块卡住,它将会在平地上移动0.166m。

其实发射器发射tnt时,效果是一样的

从第一句,开始,被发射的tnt是一个实体。

这句话意味着,tnt是可以卡入方块之中的

这个性质导致在活塞压缩时可能会出问题。

我们开始第一个关于炮体的延伸

所谓的炮体,其功能就是压缩(或者叫集中)tnt,让tnt尽量聚集在一起,共同对弹头进行推进。所以炮体一般分为两个主体部分,一个用来压缩推进用的tnt,一个用来压缩弹头的tnt(因为包含一个tnt的弹头的打击范围往往没有包含多个tnt的弹头的打击范围大,这和实体tnt的一个bug有关)

这是GT索魂的一门炮里的炮口,可以清楚地看到有两根炮管对着此处,其中一根提供的是推进药,而另一根提供的就是弹头。

为了接下来的表述方便,红石炮主体的结构会按照下图的方式表达

压缩器:对推进药tnt起压缩作用的装置,未标明的话特指tnt压缩器

炮管:在红石炮主体中供tnt运动的部分,未标明的话特指供推进药tnt运动的部分

推进药爆炸点:推进药爆炸,对弹头产生推进的地方

弹头供应器:顾名思义,提供弹头的装置

对于一个比较复杂的红石炮,我们会按照下图方式表述

推进药一、二级压缩器:多个压缩推进药tnt的装置,按照压缩器的工作顺序分级。(弹头压缩器类推)

推进药供应器组:供应推进药的发射器组(弹头供应器组类推)

推进药炮管:供推进药运动的炮管(弹头炮管类推)

炮架:或者称为炮口,决定弹头被推进后的运行轨迹的部分。

对于tnt的压缩,我们一般有三种方式:tnt压缩、水流压缩和活塞压缩,我们一般以tnt压缩为主,水流压缩和活塞压缩为辅

长距离的炮管运动用tnt压缩,一般是一个压缩器压缩长度为六的供应器供应的tnt,因为如果再长的话压缩器的爆炸推力就推不到了(当然缩短是没问题的)

如果需要运动的距离比较长,我们也可以这么做

这里用到了tnt压缩,水流压缩和透门原理

由于六个发射器发射的tnt与压缩器的距离不同,但是这些tnt要运动到相同的位置,所以,靠压缩器近的tnt获得的速度大但是运动距离也长,靠压缩器远的tnt获得的初速度小但是运动距离短,那么,靠压缩器最近的那个位置的tnt可能不是最快到达指定位置的那个tnt

所以这个时候我们就需要靠在炮管中加水流来辅助

流动的水让靠压缩器最近的tnt稍稍前移,这样能够更快地到达预定位置(要实现这样的效果你需要卡时序)

如转载涉及版权等问题,请作者与我司联系,我司将在第一时间删除或支付稿酬。