天才一秒记住【第一中文网】地址:www.dyzww.cc
输入b也有两个:
b?=3
b?=-2
我们也对它们进行+=操作,最终得出的结果竟然是:
a?=c?=a?+b?=1+3=4
a?=c?=a?+b?=0+3=3
没错!输入a和输入b多个的情况下,游戏只会选择一个输入b来参与运算。也就是说,在其他条件相同的情况下,该结果跟输入a多个但输入b只有一个的结果一模一样。
这应该算是个bug吧......
对了,既然游戏只会选择一个输入b来参与运算,那么这个输入b会选择谁呢?
根据作者的测试,游戏会选择目标选择器排列的第一个输入b,这时候就要看你用的目标选择器。如果用的是@p、@e、@a,就是就近原则;如果是@r,则是随机。
这个排列顺序在operation中不只是用于选择输入b,它还用于在情况1下决定输入a们与输入b运算的先后顺序和情况2中决定输入a和哪些输入b先运算,哪些输入b后运算。
了解这些后,我们就可以来看一种升级版的情况1:
当输入a有多个,输入b有一个且这个输入b也是一个输入a时
这个情况是啥意思呢?简单来说,现在有张三李四王五,我们拿他们三的分数作为三个输入a,并把张三的分数也作为输入b。是不是复杂了起来?
我们假设有三个输入a,分别是:
a?=-2
a?=1
a?=3
(按照下标数字从小到大参与运算)
而输入b就是a?。
我们对它们两按照该情况进行+=运算,最终得出来以下结果:
a????=c?=a????+a????=-2+1=-1
a????=c?=a????+a????=1+1=2
a????=c?=a????+a????=3+2=5
上面两个式子中,为了让大家方便理解,我特别标上了old(旧)和new(新)来代表未运算和已运算的两个不同的量。
不难发现,当输入a有多个,并且输入b是众多输入a中的一个时,如果某个输入a与输入b运算时这个输入b所关系的输入a还没有运算,那么这个输入a将会与旧的输入b进行运算;如果某个输入a与输入b运算时这个输入b所关系的输入a已运算完成,那么这个输入a将会与新的输入b进行运算。
这读起来有点绕口啊。没关系,虽然现在你不一定看得懂,但只要你在游戏中实地做过实验你估计就懂了。
本章就到这里......了?
刚才的四个探究中,我们都在探究operation在有多个输入和多个输出情况下会如何计算。一般来说,进行这种研究会用到命令方块。你知道的,命令方块运行指令成功后会输出结果,这个结果可能会影响到命令方块输出的红石信号强度。比如我们之前讲到的testfor指令,探测到有多少个实体就输出多强红石信号。
那么operation在命令方块中执行成功是否会影响到命令方块输出的红石信号强度呢?
答案是:能!
经过作者的测试,operation运行一次输出的红石信号强度,等于该次operation计算的次数。比如情况1中,如果指令是在命令方块中运行,那么运行成功后命令方块将输出3级红石信号,因为operation运算了3次。情况2输出的信号也一样,别看作者给出的只是一行式子,但是operation仍然确确实实运算了3次。
这是一
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!