⊙v⊙
在做些穷举蠢事情...
情况大概是这样的,
准备做个360度*180度的raycasting,所以就不用船了
在把玩家每个横向角度变为对应分数之后

(暂时忽略纵向/上下角度)
设置当玩家角度分数=275,
也就是当玩家面向east,往south偏移5度时

发射一个往那个角度的雪球,NoGravity
速度为1m/s


然后用三角函数算出玩家275度时,
设置Motion为[   0.9961946981d,   0.0d,   0.08715574275d   ]
虽然entitydata获得的Motion不相同
到这里都没什么大问题,




但是当我把速度提升为10m/s的时候
设置Motion为[   9.961946981d,   0.0d,   0.8715574275d   ]
entitydata获得的Motion不相同
实际情况是

发射的角度没变  为270度
速度变快了

显示的发射角度变了,~为280度
entitydata获得的Motion不相同 [   9.86232760619453d,   0.0d,   0.8628418615368193d   ]    计算后~为280度


所以问题是entitydata获得的Motion为什么会不相同。
还有速度变快的时候,实际显示的雪球出现差异
求问有解决办法吗?


补图

速度为1m/s时,显示正确,符合270度


速度提升后,显示错误,符合280度,实际角度无变化,爬行者就是证明...



emmm.....一个无视雪球碰撞的爬行(伪)

xiao_zhe667
  楼主我可以问个问题吗?新人等级低发不了帖,而且看你也是个老手了;就是才开始我先用b站账号登录,后来发现没什么用,就直接注册了一个账号,但是为什么一点bilibili登录就直接登录这个号了?我也没绑定啊qwq。我又创了一个新号,点bilibili登录还是登录另一个号,而不是新号。
  麻烦楼主了qwq

Deing
我虽然对此没什么研究但想强答一发,就当是提供一点思路吧。
因为我最近在玩一些模组的时候,发现里边添加的一些远程武器(比如弓箭、弩箭),有时候会斜着发出箭但实际上真正的箭还是直线发出的;甚至连一些本来应该发出无视重力的光束的武器 (没错我说的是embers的那个枪)也会这样,发出的光束看起来是斜着飞走了但却能打中我原来瞄准的目标。结合你的测试我觉得这可能是一个mc的bug,就是当实体motion值过高时会出现显示错误,真正的位置和看到的位置不重合。
至于怎么解决……这个我就不清楚了,还望有大神来解答。

chyx
问一下 你summon雪球的指令是cb还是function执行的?
如果是function 那么是cb执行的还是成就循环执行的还是gamerule执行的?

chyx
至于Motion变了 恐怕是空气阻力

⊙v⊙
chyx 发表于 2017-9-25 02:49
问一下 你summon雪球的指令是cb还是function执行的?
如果是function 那么是cb执行的还是成就循环执行的还 ...

角度检测是rcb,用function
summon是根据角度分数,目前用的是rcb

到时候准备都移到function  用gamerule loop

⊙v⊙
chyx 发表于 2017-9-25 03:05
至于Motion变了 恐怕是空气阻力

又做了点测试...当速度提升导致Motion
的某个数值Motion小于-10或大于10时
那个超出的Motion会被视为0...

比如   10 0 10   会以south往west的45度发射
但   10.000001 0 10.00001 就会视为 0 0 0 完全静止


所以...
感觉因为计算范围是-10 ~ 10,然后
如果超过范围的话,会被算为0
如果在计算范围值内但速度过快的话,会出现显示偏差...
好坑...

你那句变化成比例没看懂...