55555hhh 发表于 2019-7-24 19:44
Vector v = new Vector(121,74,137);
p.getEyeLocation().setDirection(v);
整段代码上下文有么
以及为什么看的方向矢量是固定的
阴阳师元素祭祀 发表于 2019-7-24 19:46
整段代码上下文有么
以及为什么看的方向矢量是固定的
- }else if(args[0].equalsIgnoreCase("x") && p.isOp()) {
- Location loc = p.getLocation();
- p.sendMessage("x: "+loc.getBlockX()+" Y: "+loc.getBlockY()+" Z: "+loc.getBlockZ());
- p.setFlySpeed(0.3f);
- Location v = new Location(Bukkit.getWorld("world"),121,74,137);
- p.getEyeLocation().setDirection(v.toVector());
-
-
- }
为什么是固定的..我想给玩家做一些指示类的东西
本帖最后由 阴阳师元素祭祀 于 2019-7-24 19:51 编辑
因为你的方向矢量是定值啊
你要玩家看向一个坐标你需要计算 玩家 看向那个坐标 的 方向矢量(vec)
建议参考数学书 (不知道哪里 x
一般来讲
你要看的点的坐标减去玩家所在坐标 就是一个三维矢量 (看向的方向了
55555hhh 发表于 2019-7-24 19:49
为什么是固定的..我想给玩家做一些指示类的东西
因为你的方向矢量是定值啊
你要玩家看向一个坐标你需要计算 玩家 看向那个坐标 的 方向矢量(vec)
建议参考数学书 (不知道哪里 x
一般来讲
你要看的点的坐标减去玩家所在坐标 就是一个三维矢量 (看向的方向了
本帖最后由 55555hhh 于 2019-7-24 20:07 编辑
复制代码
//大佬是这个意思吗...失败了
成了 是我把两个坐标弄反了 谢谢大佬
阴阳师元素祭祀 发表于 2019-7-24 19:49
因为你的方向矢量是定值啊
你要玩家看向一个坐标你需要计算 玩家 看向那个坐标 的 方向矢量(vec)
- Location loc = p.getLocation();
- Location v = new Location(Bukkit.getWorld("world"),121,74,137);
-
- p.teleport(p.getEyeLocation().setDirection(loc.subtract(v).toVector()));
//大佬是这个意思吗...失败了
成了 是我把两个坐标弄反了 谢谢大佬
55555hhh 发表于 2019-7-24 20:01
大佬是这个意思吗...失败了
Location loc = p.getLocation();
Location v = new Location(Bukkit.getWorld("world"), 121, 74, 137);
loc.setDirection(loc.toVector().subtract(v.toVector()));
p.teleport(loc);
大概可以这样
如果不可以 是指任何移动发生么
看不懂咋办