第一百四十六章 火球
看!这草方块上漂浮着一个黑中带橙的小球球。
这是什么东西?你捡起来,一看:哦吼,火焰弹。
相信大家第一眼见到火焰弹时,看到这个“弹”字,都误以为是某种炸弹吧?其实稍加研究就知道,这东西除了远程点火以外,基本没啥用。
真的是这样吗?火焰弹在发射时,方向是不固定的,但可以通过某种技术来实现“定向火焰弹”,进而造出“火焰弹无线信号传输”。只不过这就不是指令了,这已经是红石技术了,具体想要深入了解的可以看看:av70207310《没有电磁波?!但我们依然可以开发无线电技术(无线红石技术入门)》
既然火焰弹在指令方面还没什么大用,那为什么我要说这东西?
仔细想想,火焰弹到底是个啥?
肯定是个实体啦!那么是实体中的什么呢?
弹射物啊!
?
我们目前已知的弹射物,它们都会受到重力影响,所发射出的路径是一个标准的抛物线。
但火焰弹发射后并不会受到重力影响,且速度(看起来)保持不变,以一种无视空气阻力向全世界物理学家挑衅的态度一直飞,直到撞到某个东西或因存在时间过长而被删除。
所以,火焰弹到底是什么?
弹射物啊!那不然是什么。
火焰弹其实也是弹射物,它属于弹射物中的“火球”。属于火球这类的弹射物还有:
恶魂火球、烈焰人火球、凋零之首、末影龙火球
火球有一个共通标签,即“火球共通标签”,内容很简单,就两个东西:
br /ower(值:列表)
direction(值:列表)
这两个标签的内容是一样的,都是一个列表,内有三个对应X、Y、Z三个轴的值,这三个值类型都是双精度浮点数。更形象亿点来说,是这样:
br /ower:[0.00d,0.00d,0.00d]
direction:[0.00d,0.00d,0.00d]
它们除了标签名称不一样之外,唯一不一样的,就只有它们的功能了。
我们知道,一个物体的运动过程中的速度按变化可分为两种:变速运动和匀速运动。变速运动中,还有匀变速运动,即加速度不变的运动。按运动轨迹也可分为两种:曲线运动和直线运动。就在刚刚,张三对着服务器主城来了一发火焰弹。如果你刚巧把这段录下来了,那好!赶紧以0.05X倍数播放这段录像,仔细观察这个火焰弹,你会发现:
这火焰弹的初速度(v0)为0,随后加速以直线运动的方式最终以极快的末速度(vt)撞击了主城的木质大门,用时(t)87游戏刻,中途间加速度(a)似乎保持不变。你应该知道,火焰弹的这种运动,叫做:匀加速直线运动
其中,不管是初速度还是末速度,它都存储在火焰弹的Motion标签中,但这个加速度存储在哪呢?
答案很简单,必然是br /ower和direction之一。而br /ower有“供以动力”的意思,自然就是它了。
br /ower的作用就是设定火球的加速度。在火焰弹发射时,游戏会在一定范围内随机生成br /ower的三个轴的加速度值,这就是火焰弹为什么每次发射的方向都不一样,生成后这三个值就固定了,除非外力修改。同时,火焰弹的初速度为0。发射后,每游戏刻,游戏都会将br /ower的三个值加到direction的三个值中,让火焰弹以匀加速直线运动的方式运动。
等等,为什么加的是direction而不是Motion呢?
答案仍然非常简单,direction和Motion的作用一样,且两者数据互通。更形象点就是:
direction=Motion
至于Mojang为何要这么搞......实际上Minecraft 1.16版本更新它们就(才)意识到这个东西是多余的。于是在1.16版本,没有中间商赚差价,br /ower的值就直接加到Motion里了。
这就导致一个很离谱的事情:当你在玩1.16以下版本的Minecraft时,如果你要用/summon生成火焰弹,你不能直接:
/summon small_fireball ~~~(注:火焰弹作为实体形式的时候叫做“小火球”)
你得:
/summon small_fireball ~~~{br /ower:[0.0d,0.0d,0.0d],direction:[0.0d,0.0d,0.0d]}
这样子才能生成出一个火焰弹(还是静止的)。
而在1.16版本以上,没问题了,你只需要:
/summon small_fireball ~~~{br /ower:[0.0d,0.0d,0.0d]}
唉,就一点儿问题也没有,甚至NBT你都不用加,直接/summon small_fireball就行了,系统直接给你默认全为0。
火球中,除了烈焰人火球之外,其他火球类实体都是像火焰弹一样初速度为0匀加速直线运动的。烈焰人火球是匀速直线运动(但神奇的是烈焰人火球本质上也是火焰弹)。
似乎这一章可以到此为止了。但如果你仔细研究,你会发现一个问题:
为什么火焰弹是“小火球”呢,大火球去哪了?
额,没有大火球,但有火球(fireball),这“火球”就是那个天天在天上鬼哭狼嚎的恶魂发射的。火球相比小火球就厉害了,你应该知道火球是可以打回去的,指令生成的火球也一样,而且也会破坏方块。
好,那么本章就到此为止了。
......
......
......
......
......
......
......
.....
....
...
..
.
“张三~张三~你过来一下”
“啥事啊?”
“看!我们腐竹研究出来一个新花样”
“腐竹把服务器升级到1.17了?我咋不知道?”
“还在1.12.2啦,你又没用上Java16”
“那这是怎么一回事?这工作台为什么会发光?”
“我也不知道是怎么一回事,去问问刘一看看?”
“你自己去问吧,我要研究研究新版本,没空跟你聊”
王五见张三又开始在那刷籽岷的视频,只好自己向刘一发起了传送请求。刘一那边也是非常热情,刚一发出去就同意了。很快,王五就来到了刘一的火柴盒。
“我说老兄,你这泥土屋子就不翻新一下吗,顶上的茅草都两米高了”王五一过来就吐槽了一句。刘一也是习惯了,等他说完就直接切入正题:“这次你又有什么问题?”
王五把发光的工作台给刘一描述了一下。刘一不愧是一位有经验的大佬,稍微想了一下,就想到了答案:“实际上要做出这样的效果并不难,只需要找一个可以发光的实体,将其静止,再放个工作台盖住就行了。”
“而可以发光的实体中,也就火焰弹的实体可以做到,即小火球。”
“小火球可以发光,将其静止后放上工作台并不会消失,玩家也点不到”
“原来如此!”王五像是发现了新大陆一样。
回到地下基地后,王五向张三解释了其原理,张三听完后“哦”了一声就继续沉浸在1.17新版本当中。
“看来,我也应该要多关注一下新版本了”王五想着想着,也和张三一起看了起来。
......