俯仰和偏航 - 位置和传送

时间:2015-01-11 06:09:21

标签: java bukkit

偏航和俯仰是双倍值,但在新的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);

在我的配置中,偏航和俯仰是双倍值,坐标不是问题所以让我们忽略它们,问题只是偏航和俯仰

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

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

2 个答案:

答案 0 :(得分:2)

假设没有getFloat方法,请使用:

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

您无法将String投射到Float。引用转换永远不会将对象转换为其他对象 - 它们只允许您具有引用同一对象的不同类型的引用。由于get会返回String个对象,而String s也不会Float s,因此您无法将String投放到Float }}

floatFloat之间的区别也很重要。除了装箱/拆箱转换之外,您永远不能在基元和引用之间进行转换。

答案 1 :(得分:0)

您可以使用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);