java获得了启动播放器的精确方向
我正在制作一个插件,将一个玩家抛向他的光标(十字线)。
我已经使用player.getLocation().getYaw()
使它工作了,但是由于某些原因,偏航有时是负的
我想做的是
player.setVelocity(new Vector(2.0f, 1.3f, Math.cos(player.getLocation().getYaw() * 180 / Math.PI)));
它只有50%的时间有效
你可以在下面搜索框中键入要查询的问题!
我正在制作一个插件,将一个玩家抛向他的光标(十字线)。
我已经使用player.getLocation().getYaw()
使它工作了,但是由于某些原因,偏航有时是负的
我想做的是
player.setVelocity(new Vector(2.0f, 1.3f, Math.cos(player.getLocation().getYaw() * 180 / Math.PI)));
它只有50%的时间有效
# 1 楼答案
一种可行的方法是从目标区块的坐标中减去玩家的坐标(或者反过来)。有更好的方法可以做到这一点,但尝试不止一种方法是没有坏处的! 下面是一个如何编写的快速示例:
(在本例中,受害者是玩家,震中是p.getTargetBlock()中的目标块)
# 2 楼答案
您也可以简单地使用
player.setVelocity(player.getLocation().getDirection())
将玩家朝着他们的十字线/他们面对的方向扔。可以通过各种方式操纵方向向量来更改跳跃行为,例如,将向量乘以常数以增加/减少跳跃/推的力