本帖最后由 不动要塞 于 2017-12-31 16:44 编辑
复制代码复制代码
复制代码复制代码
复制代码复制代码
拐弯火球镇楼
前段时间做rpg发现,召唤火球存在两个量,而且都是控制方向的,那么这有什么意义呢
1:首先是最初的命令——————————————
- summon FireBall ~ ~2 ~ {ExplosionPower:1,direction:[0.0d,0.0d,0.0d],power:[0.0d,0.0d,0.0d]}
这是在上方召唤一个火球
但是火球却停在了那,不会动,除非你左键打一下才会给予一个方向的力量
2:这就需要给予一个方向了——————————
- /summon FireBall ~ ~3 ~ {ExplosionPower:1,direction:[3.0d,0.0d,0.0d],power:[0.0d,0.0d,0.0d]}
这下火球确实朝着方向飞起来了,但是仔细观察,火球在远处缓慢的停了下来,甚至撞在了一起
这就到了第三节
3:数据标签分析————————
在命令中:summon FireBall ~ ~2 ~ {ExplosionPower:1,direction:[0.0d,0.0d,0.0d],power:[0.0d,0.0d,0.0d]}
在这里,红色的的direction代表初始速度,会衰减
蓝色的power是匀速的,不会衰减
当初速度大于匀速的,会以初速度方向飞行,否则向匀速度方向飞行
至此,可以使用
- /summon FireBall ~ ~3 ~ {ExplosionPower:1,direction:[3.0d,0.0d,0.0d],power:[0.0d,0.0d,0.5d]}
实现拐弯的火球
或者
- /summon FireBall ~ ~3 ~ {ExplosionPower:1,direction:[3.0d,0.0d,0.0d],power:[-0.3d,0.1d,0.0d]}
至此关于火球发射向量研究完毕
4:其他
①使用计分板穷举,自由发射火球吧
- #scoreboard objectives add dir dummy 方向判断
- scoreboard players set @a[rym=-22,ry=22] dir 0
- scoreboard players set @a[rym=22,ry=67] dir 1
- scoreboard players set @a[rym=67,ry=112] dir 2
- scoreboard players set @a[rym=112,ry=157] dir 3
- scoreboard players set @a[rym=157,ry=-157] dir 4
- scoreboard players set @a[rym=-157,ry=-112] dir 5
- scoreboard players set @a[rym=-112,ry=-67] dir 6
- scoreboard players set @a[rym=-67,ry=-22] dir 7
②一个指令,模拟旋转木马(猪)
- /summon FireBall ~ ~3 ~ {ExplosionPower:1,direction:[3.0d,0.0d,0.0d],power:[0.0d,0.0d,0.5d]}
http://www.mcbbs.net/thread-773215-1-1.html
最后
感谢观看
本版禁用回复可见,请楼主自行编辑去除。
个人感觉还是蛮有用的啊,在做图内特效有很好的表现力
怎么觉得你把问答版回答的问题发到这里来了
6666666666666666666666666
详细点的研究数据吧...
power其实是加速度,每tick在direction上加多少
而direction递减是每tick -5%
每gt火球会进行这样的更新:(伪代码)
position += direction //先进行position的更新
direction = (direction + power)*0.95
如果是被实体攻击/发射的话,那就会设置:
power = direction * 0.1
所以其实也不是不会进行加速的...虽然会到极限就是了
power其实是加速度,每tick在direction上加多少
而direction递减是每tick -5%
每gt火球会进行这样的更新:(伪代码)
position += direction //先进行position的更新
direction = (direction + power)*0.95
如果是被实体攻击/发射的话,那就会设置:
power = direction * 0.1
所以其实也不是不会进行加速的...虽然会到极限就是了
pca006132 发表于 2017-12-31 20:18
详细点的研究数据吧...
power其实是加速度,每tick在direction上加多少
而direction递减是每tick -5%
这就很有意思的,由于0.05足够小,最后得到的位置可以近似看成包含时间的某个指数函数
这个火球的特性,其实很惭愧地说一下,我当初是挺研究过一阵儿的,起因是http://www.mcbbs.net/forum.php?m ... 565887&pid=10002054,看到这篇帖子关于画曲线的研究之后,我就想到可以用entitydata改火球的速度来用火球画曲线,然而…………如你所见这是16年3月的事。。开坑太多填不掉啊,尤其后来看到http://www.mcbbs.net/thread-620979-1-1.html这篇帖子,以及再后来用一堆骑乘的船画曲线的方法,我就更加没有动力了。。。
而且火球这个方法吧,弊端其实非常明显,就是motion值是不可探测或修改并且不可能精确的。我做过不少实验,发现最后稳定飞行(即power值一定)的火球motion值其实一直在变(只是变化很小)而且规律难测,使用时远不如tp方法画出的曲线更精准;并且,所有的direction和power的数值必须亲自测定再手动输入,不能像坐标那样通过一些叠加什么的直接交给mc来运算,这样要做一个大的曲线工程就要手测许多数值并全部输入到指令里,还是非常麻烦的。(唉,也许我就是太怕麻烦了……)
(根据六楼pca dalao的话来看,这个方法确实太过复杂,不过……似乎还是可以有些用途的?)
今天看到你的帖子,不禁感到很惭愧啊,当初研究了挺久的东西就那样抛下了,,然后因为又各种事情以及各种懒癌就没再捡起来(现在依然忙啊,,而且都1.13了估计是再也不会填坑了;更别说我已经好久不玩命令了现在一直在搞1.10.2+的mod),这个火球虽然在画精确曲线上不是很行,但是如果你愿意,也许你能继续研究研究并发现一些好的应用呢。
最后发几张当初我实验时候的图缅怀一下




而且火球这个方法吧,弊端其实非常明显,就是motion值是不可探测或修改并且不可能精确的。我做过不少实验,发现最后稳定飞行(即power值一定)的火球motion值其实一直在变(只是变化很小)而且规律难测,使用时远不如tp方法画出的曲线更精准;并且,所有的direction和power的数值必须亲自测定再手动输入,不能像坐标那样通过一些叠加什么的直接交给mc来运算,这样要做一个大的曲线工程就要手测许多数值并全部输入到指令里,还是非常麻烦的。(唉,也许我就是太怕麻烦了……)
(根据六楼pca dalao的话来看,这个方法确实太过复杂,不过……似乎还是可以有些用途的?)
今天看到你的帖子,不禁感到很惭愧啊,当初研究了挺久的东西就那样抛下了,,然后因为又各种事情以及各种懒癌就没再捡起来(现在依然忙啊,,而且都1.13了估计是再也不会填坑了;更别说我已经好久不玩命令了现在一直在搞1.10.2+的mod),这个火球虽然在画精确曲线上不是很行,但是如果你愿意,也许你能继续研究研究并发现一些好的应用呢。
最后发几张当初我实验时候的图缅怀一下




本帖最后由 ruhuasiyu 于 2017-12-31 23:19 编辑
现在在1.13修改direction和power还是很简单的……
如果没有衰减的话,的确就是一条抛物线(二次贝塞尔曲线)
Deing 发表于 2017-12-31 23:01
这个火球的特性,其实很惭愧地说一下,我当初是挺研究过一阵儿的,起因是http://www.mcbbs.net/forum.php?m ...
现在在1.13修改direction和power还是很简单的……
如果没有衰减的话,的确就是一条抛物线(二次贝塞尔曲线)
那岂不是可以用骑着火球的矿车做过山车[手动滑稽]
幸苦了,大大
wc竟然还可以这样玩
赞一个_(:з」∠)_
power这个标签应该是加速度而不是匀速吧
MCBBS有你更精彩~
MCBBS有你更精彩
不行,骑着火球的矿车在召唤出来的一瞬间就炸了,无论任何实体与火球接触都会爆炸,有大佬能解决下吗,这创意还不错