本帖最后由 贰逼 于 2015-11-11 19:20 编辑

(序)高频与超频

下一页为 创建方式

正式学习模块前,先了解指令方块驱动核心——高频(与超频)的顺序。*(1.9版本请使用repeat自更新命令方块或者链接chain链式命令方块作为核心,不需要fill clock。如果使用自更新方块,只需要注意依次放置;如果使用链式方块,只需要注意链接的先后。)

模块基础将会涉及到

红石高频

指令方块超频

§α.0 作用

        α.0.1 为什么要使用高频
大家都知道指令方块被激活才能完成事件


只有受到了红石信号后指令方块才有输出,

然而为了完成指令方块的自动化,不可能手动完成激活信号,所以必须需要高频。
即使是单次完成的指令,也需要激活,所以仍旧需要判断条件,依旧需要高频。
以高频在无论是逻辑组中还是模块中占有十分重要的地位


所以高频就是每次提供一次红石信号,完成指令方块的刷新,从而得到自动化的执行

可以这么说,没有高频不可能得到现在的指令方块。


        α.0.1 高频分类
高频在此处分为两类,一种是红石高频,一种是指令方块超频,分别是逻辑组模块的核心。


                α.0.1.1 红石高频

逻辑组中常见的有以下几个:


红石高频显著的特点就是红石布线,从而激活方块。

执行效率一般,但是为逻辑组提供了优点,
因为高频可控,所以能轻易的通过setblock指令控制
也因为速度较慢,所以能驾驭一些复杂的逻辑指令组,甚至控制逻辑电路
所以成为了逻辑组的核心

其他的高频可上网查找,不做较多说明。

                0.α.1.2 红石高频



指令方块超频显著的特点就是块输出,从而激活方块。

执行效率很高,所以成为了模块的核心
因为其执行效率,所以能够基本即时完成输出
但是弊端在于不能驾驭复杂逻辑指令,所以才有后来的一系列近乎模拟编程的教程。

尽管有利有弊,但仍然成为了国外主流。


其他高频可上网查找,不做较多说明。



全索引链接
上一篇(计分板操作)--下一篇(序) 模块概念)

§α.1 创建
下一页为 执行顺序

      α.1.1 红石高频

这是红石玩家的数值内容,不做详细解释.
可自行查找,本帖只会介绍中继器类布线类

      α.1.2 指令方块高频

                α.1.2.1 FallingSand法
此方法具体教程:
http://www.mcbbs.net/thread-209421-1-1.html



/summon FallingSand ~ ~1 ~ {Tile:152}
通过激活上述指令,在得到的红石块附近的红石都会得到红石脉冲。

这是因为summon后的红石块会再次激活指令,所以达到超频的效果。

                α.1.2.2 Setblock法



上方指令方块:
/setblock ~ ~-1 ~ redstone_block
下方指令方块:
/setblock ~ ~1 ~ air
在两个指令方块中间放置红石块,同时激活。

由于执行顺序,所以会先执行下面的,而指令判定放置的时间比执行上面的慢,
所以在放置空气时又在判定放置红石块,于是形成了超频。

                α.1.2.3 fill法
fill法输出全是红石块,所以都为信号源



上:
/fill ~(最后坐标与现坐标的差) ~-1 ~(最后坐标与现坐标的差)~ ~-1 ~ redstone_block
下:
/fill ~(最后坐标与现坐标的差) ~1 ~(最后坐标与现坐标的差)air

最后坐标与现坐标的差
fill区域相对的角落的坐标 减去 这两个指令方块中间的坐标 得到的x轴和z轴的差。(y轴为固定)
差为0是直线,为其他数值则是一个区域。

例如
这两个指令方块中间的坐标 为:0 1 0
fill区域相对的角落的坐标 为:-2 1 10
则x轴差为-2,z轴差为10
指令就是:
/fill ~-1 ~-1 ~10~ ~-1 ~ redstone_block
/fill ~-1 ~1 ~10~ ~1 ~ air

因为fill是一个区域性的操作,而上面只是水平区域,但也可垂直,这里不做解释。

与setblock相同原理,只不过将红石改成了红石块,而且输出顺序更有条理。

缺点:fill法的区域块会被动执行,无法破坏,被强制固定了。

                α.1.2.4 fill/replace法
为fill演深版,继承了fill法优点



上:
/fill ~(最后坐标与现坐标的差) ~-1 ~(最后坐标与现坐标的差)~ ~-1 ~ redstone_block 0 replace 方块名 (附加值,默认0)
下:
/fill ~(最后坐标与现坐标的差) ~1 ~(最后坐标与现坐标的差)方块名 (附加值,默认0) replace redstone_block 0

最后坐标与现坐标的差
fill区域相对的角落的坐标 减去 这两个指令方块中间的坐标 得到的x轴和z轴的差。(y轴为固定)
差为0是直线,为其他数值则是一个区域。
方块名可以为任何不是红石块的方块名,附加值随意,前提有这个方块

例如
这两个指令方块中间的坐标 为:0 1 0
fill区域相对的角落的坐标 为:-2 1 10
方块名 为:wool
附加值 为:8
则x轴差为-2,z轴差为10,
指令就是:

/fill ~-1 ~-1 ~10~ ~-1 ~ redstone_block 0 replace wool 8
/fill ~-1 ~1 ~10~ ~1 ~ wool 8 replace redstone_block 0

优点:与fill一样,但是由于replace所以降低了效率,但可以直接手动添加/减少红石块超频(不会锁住)
这里要说明,此处不同fill的范围是一个块全部被动执行,这里是一个范围,(这个范围可以非常大)
只要在这个范围内的红石块自动成为超频核心



综合推荐fill法(最普遍的方式);
若需要可控制的,则推荐fill/replace法.



附加部分
练习:
  • 学习创建红石高频;
  • 学习创建指令方块超频。



§α.2 执行顺序

      α.2.1 执行顺序概念

对于任何红石机械来说都有着先后顺序不可能同时执行


说明了机械始终存在顺序↑

本章将探究顺序先后的条件与关系


      α.2.1 执行顺序作用
执行顺序作用在于执行一个事件的前后

举一个简单的例子,
倘若
事件1:b=a;
事件2:在文本框中输出b的值。

若先执行 事件1,再 事件2,
因为输出b的值,而在此之前b=a,所以输出了a的值

若先执行 事件2,再 事件1,
因为先输出b的值,而b=a在此之后,所以输出的只是b的值

所以执行顺序无论在逻辑组和模块中都有重要作用




      α.2.2 红石高频中的执行顺序
               我不想说了,大家心里明白
                α.2.2.1 延迟顺序



延迟顺序比较简单,就是按照延迟的方向执行,
最先执行脉冲刚刚开始时的前端最后执行脉冲最后到达的末端

比如脉冲在1 2 3 4处以下列顺序顺序产生信号:
1→2→3→4

那么高频执行的顺序就是
1→2→3→4  →1→2→3→4  →1→2→3→4  →1→2→3→4


      α.2.3 指令方块超频中的执行顺序
                α.2.3.1 布线顺序
  • FallingSand法



  • Setblock法


两种方式均使用红石高频中的布线顺序

                α.2.3.2 块顺序
所谓的块顺序就是整个fill超频中区域中的执行的顺序。

因为红石块为信号源,所以信号顺序相同,此时就需要微延迟来作为顺序了。

  • 探究顺序




由上面两图可以得知↑

若信号相同
那么执行顺序则是:
x- x+ y- y+ z- z+

  • 格式布局
所以对于常见的线型布局:



可以像上图一样布局↑


也可以按照如此排列↑

两种布局顺序都是一样的。


      α.2.4 标准顺序
                α.2.4.1 布线
不做讲解

                α.2.4.2 延迟
按照脉冲前端至末端顺序依次执行。

                α.2.4.3 同信号同延迟
微延迟:
按照:
x- x+ y- y+ z- z+
顺序执行。






[groupid=546]Command Block Logic[/groupid]