所以我有这个代码
Vector vel = playerA.getVelocity();
playerB.setVelocity(vel);
这给予了玩家B玩家A的速度,问题是,玩家B经常从玩家A的位置得到不受限制,如果玩家距离彼此不远一块,玩家B就不会得到除非球员跳起,否则他会动起来。 将playerB传送到playerA非常麻烦,因为他们需要能够移动鼠标
有人能指出我正确的方向来解决这个问题吗?先谢谢
答案 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);
}
}