俯仰和偏航 - 定位和传送

Pitch and Yaw - Location and Teleportation

偏航角和俯仰角是双精度值,但是在新的 Location 对象中,他们要求浮动而我做不到 (Float) pitch,因为它显示了一个错误,说我不能做吧。

这是我的代码:

float yaw = (Float) getConfig().get("location.Yaw");
float pitch = (Float) getConfig().get("location.Pitch");

Location teleport = new Location(w, getConfig().getDouble("location.X"), getConfig().getDouble("location.Y"), getConfig().getDouble("location.Z"), yaw, pitch);

在我的配置中,yaw 和 pitch 是 double 值,坐标不是问题所以让我们忽略它们,问题只是 yaw 和 pitch

新的 Location 对象初始化参数是:

Location teleport = new Location(World world, Double x, Double y, Double z, Float yaw, Float pitch);

您可以使用 Float.parseFloat() 将字符串转换为浮点数。例如:

String str = "13.715";
float value = Float.parseFloat(str); //value is now equal to 13.715f

要从配置中获取值并解析浮点数,您可以使用:

String valueFromConfig = getConfig().getString("my.path");
float myFloat = Float.parseFloat(valueFromConfig);

所以,这就是您的代码的样子:

float yaw = Float.parseFloat(getConfig().get("location.Yaw"));
float pitch = Float.parseFloat(getConfig().get("location.Pitch"));

Location teleport = new Location(w, getConfig().getDouble("location.X"), getConfig().getDouble("location.Y"), getConfig().getDouble("location.Z"), yaw, pitch);

假设没有 getFloat 方法,使用:

float yaw = (float) getConfig().getDouble("location.Yaw");

您不能将 String 转换为 Float。引用转换从不将对象转换为其他对象——它们只允许您拥有引用同一对象的不同类型的引用。由于 get returns 一个 String 对象,并且 String 不是 Float,你不能将 String 转换为 Float.

floatFloat之间的区别也是相关的。除了 boxing/unboxing 转换之外,您永远不能在基元和引用之间进行转换。