扫码在手机阅读
手机阅读《Minecraft指令手册》
Minecraft指令手册

第146章火球

它们除了标签名称不一样之外,唯一不一样的,就只有它们的功能了。

我们知道,一个物体的运动过程中的速度按变化可分为两种:变速运动和匀速运动。变速运动中,还有匀变速运动,即加速度不变的运动。按运动轨迹也可分为两种:曲线运动和直线运动。就在刚刚,张三对着服务器主城来了一发火焰弹。如果你刚巧把这段录下来了,那好!赶紧以倍数播放这段录像,仔细观察这个火焰弹,你会发现:

这火焰弹的初速度(v0)为0,随后加速以直线运动的方式最终以极快的末速度(vt)撞击了主城的木质大门,用时(t)87游戏刻,中途间加速度(a)似乎保持不变。你应该知道,火焰弹的这种运动,叫做:匀加速直线运动

这是什么东西?你捡起来,一看:哦吼,火焰弹。

相信大家第一眼见到火焰弹时,看到这个“弹”字,都误以为是某种炸弹吧?其实稍加研究就知道,这东西除了远程点火以外,基本没啥用。

真的是这样吗?火焰弹在发射时,方向是不固定的,但可以通过某种技术来实现“定向火焰弹”,进而造出“火焰弹无线信号传输”。只不过这就不是指令了,这已经是红石技术了,具体想要深入了解的可以看看:av70207310《没有电磁波?!但我们依然可以开发无线电技术(无线红石技术入门)》

power的作用就是设定火球的加速度。在火焰弹发射时,游戏会在一定范围内随机生成power的三个轴的加速度值,这就是火焰弹为什么每次发射的方向都不一样,生成后这三个值就固定了,除非外力修改。同时,火焰弹的初速度为0。发射后,每游戏刻,游戏都会将power的三个值加到direction的三个值中,让火焰弹以匀加速直线运动的方式运动。

等等,为什么加的是direction而不是Motion呢?

答案仍然非常简单,direction和Motion的作用一样,且两者数据互通。更形象点就是:

direction=Motion

至于Mojang为何要这么搞......实际上Minecraft 版本更新它们就(才)意识到这个东西是多余的。于是在版本,没有中间商赚差价,power的值就直接加到Motion里了。

这就导致一个很离谱的事情:当你在玩以下版本的Minecraft时,如果你要用/summon生成火焰弹,你不能直接:

/summon small_fireball (注:火焰弹作为实体形式的时候叫做“小火球”)

你得:

/summon small_fireball {power:[,,,direction:[,,}

这样子才能生成出一个火焰弹(还是静止的)。

而在版本以上,没问题了,你只需要:

/summon small_fireball {power:[,,}

唉,就一点儿问题也没有,甚至NBT你都不用加,直接/summon small_fireball就行了,系统直接给你默认全为0。

火球中,除了烈焰人火球之外,其他火球类实体都是像火焰弹一样初速度为0匀加速直线运动的。烈焰人火球是匀速直线运动(但神奇的是烈焰人火球本质上也是火焰弹)。

似乎这一章可以到此为止了。但如果你仔细研究,你会发现一个问题:

为什么火焰弹是“小火球”呢,大火球去哪了?

额,没有大火球,但有火球(fireball),这“火球”就是那个天天在天上鬼哭狼嚎的恶魂发射的。火球相比小火球就厉害了,你应该知道火球是可以打回去的,指令生成的火球也一样,而且也会破坏方块。

好,那么本章就到此为止了。

......

......

......

......

......

......

......

.....

....

...

..

“张三张三你过来一下”

“啥事啊?”

“看!我们腐竹研究出来一个新花样”

“腐竹把服务器升级到了?我咋不知道?”

“还在啦,你又没用上Java16”

“那这是怎么一回事?这工作台为什么会发光?”

“我也不知道是怎么一回事,去问问刘一看看?”

“你自己去问吧,我要研究研究新版本,没空跟你聊”

王五见张三又开始在那刷籽岷的视频,只好自己向刘一发起了传送请求。刘一那边也是非常热情,刚一发出去就同意了。很快,王五就来到了刘一的火柴盒。

“我说老兄,你这泥土屋子就不翻新一下吗,顶上的茅草都两米高了”王五一过来就吐槽了一句。刘一也是习惯了,等他说完就直接切入正题:“这次你又有什么问题?”

王五把发光的工作台给刘一描述了一下。刘一不愧是一位有经验的大佬,稍微想了一下,就想到了答案:“实际上要做出这样的效果并不难,只需要找一个可以发光的实体,将其静止,再放个工作台盖住就行了。”

“而可以发光的实体中,也就火焰弹的实体可以做到,即小火球。”

“小火球可以发光,将其静止后放上工作台并不会消失,玩家也点不到”

“原来如此!”王五像是发现了新大陆一样。

回到地下基地后,王五向张三解释了其原理,张三听完后“哦”了一声就继续沉浸在新版本当中。

“看来,我也应该要多关注一下新版本了”王五想着想着,也和张三一起看了起来。

......

既然火焰弹在指令方面还没什么大用,那为什么我要说这东西?

仔细想想,火焰弹到底是个啥?

power:[,,

direction:[,,

火球有一个共通标签,即“火球共通标签”,内容很简单,就两个东西:

看!这草方块上漂浮着一个黑中带橙的小球球。

肯定是个实体啦!那么是实体中的什么呢?

弹射物啊!

弹射物啊!那不然是什么。

power(值:列表)

direction(值:列表)

这两个标签的内容是一样的,都是一个列表,内有三个对应X、Y、Z三个轴的值,这三个值类型都是双精度浮点数。更形象亿点来说,是这样:

但火焰弹发射后并不会受到重力影响,且速度(看起来)保持不变,以一种无视空气阻力向全世界物理学家挑衅的态度一直飞,直到撞到某个东西或因存在时间过长而被删除。

所以,火焰弹到底是什么?

其中,不管是初速度还是末速度,它都存储在火焰弹的Motion标签中,但这个加速度存储在哪呢?

答案很简单,必然是power和direction之一。而power有“供以动力”的意思,自然就是它了。

火焰弹其实也是弹射物,它属于弹射物中的“火球”。属于火球这类的弹射物还有:

恶魂火球、烈焰人火球、凋零之首、末影龙火球

我们目前已知的弹射物,它们都会受到重力影响,所发射出的路径是一个标准的抛物线。

  • 加入收藏
  • 目录
  • A+
  • A-