Bukkit:给予另一个玩家速度

时间:2016-01-24 11:13:51

标签: java minecraft bukkit

所以我有这个代码

Vector vel = playerA.getVelocity(); playerB.setVelocity(vel);

这给予了玩家B玩家A的速度,问题是,玩家B经常从玩家A的位置得到不受限制,如果玩家距离彼此不远一块,玩家B就不会得到除非球员跳起,否则他会动起来。 将playerB传送到playerA非常麻烦,因为他们需要能够移动鼠标

有人能指出我正确的方向来解决这个问题吗?先谢谢

2 个答案:

答案 0 :(得分:0)

我假设你正在尝试构建一些代码,让玩家B跟随玩家A.为什么不计算两个玩家之间的位置差异,并使用它来构建一个新的向量?

例如:

 Location difference = playerA.getLocation().subtract(playerB.getLocation());
 playerB.setVelocity(difference.toVector());

因此,这将不断地(每次调用一段代码时始终有意义)将playerB的速度设置为这个新的向量,并使他向这个方向前进。

答案 1 :(得分:0)

我不认为使用速度会让你走向成功。相反,我尝试使用传送,但是使用playerB的值覆盖playerA的位置的Yaw和Pitch字段,以允许"免费鼠标移动":

@EventHandler
public void onMove(PlayerMoveEvent event)
{
    if (event.getPlayer().equals(playerA))
    {
        Location loc = event.getPlayer().getLocation();
        loc.setPitch(playerB.getLocation().getPitch());
        loc.setYaw(playerB.getLocation().getYaw());
        playerB.teleport(loc);
    }
}