欢迎光临散文网 会员登陆 & 注册

谈谈MC战斗(二)

2022-08-20 10:05 作者:道家深湖  | 我要投稿

我在理想境里召唤了一个“永生者”,也就是钻石套的僵尸,移速和普通僵尸一样是0.23格每刻,或者说4.6米每秒。

接着,我写了这样一个“打点计时器”道具:

使用此道具与目标实体交互,则会给目标实体设置“dist_measure”nbt的布尔值;如果是假就改成真,是真就改成假。

此道具在背包的时候,每一帧会在后台线程打印附近每个该布尔值为真的生物与本玩家的距离。

代码如下,不感兴趣的忽略就行。

这样我就能知道特定一个生物,每个tick与玩家的距离是多少了。虽然从代码的角度也能推演,但我更希望从实战的角度去测试,不希望空中楼阁的推演出差池。代码的话涉及的模块过多,需要同时看击退、AI和实体自带的更新逻辑,我打算先从物理实验的方式研究一番,再去从代码分析。

我站在原地不动,僵尸朝我过来,我就拿一把石剑去打他,他过来我就打他。很快,测量数值就出来了。

后台打印的数据

只需要扔进vscode,按住alt就可以把右面的那一列复制进excel了。

打了10次,v-t图如上

我不太清楚为何移动速度属性为0.23的怪物,在朝我冲过来的时候,每刻的移速是0.114左右,也就是理论值的一半。我使用了普通僵尸做同样的实验,结果仍然是0.114的冲锋速度,所以并不是我自己写的永生者出了问题。

可以看到,这个速度的变化并不是单调的,而且很奇怪。他的第一帧被击退后迅速衰减,之后进入一段比较平滑的衰减期,接下来剧烈衰减并反弹一帧,然后怪物开始逐渐加速靠近玩家。这里有一个奇怪的拐点,每一轮实验都是如此。

到底哪里是怪物在空中的最高点,哪里是怪物落地点?下一轮测试我改进一下打点计时器。


谈谈MC战斗(二)的评论 (共 条)

分享到微博请遵守国家法律