本帖最后由 55555hhh 于 2019-7-24 19:10 编辑
这是我失败的例子
以上的这些都是看向一个固定点
请问一下,该怎么才能让玩家准确的看向一个坐标呢
这是我失败的例子
以上的这些都是看向一个固定点
请问一下,该怎么才能让玩家准确的看向一个坐标呢
本帖最后由 540083835 于 2019-7-24 19:27 编辑
1.在那个坐标放一个森林蝙蝠讲笑话
2.(数据删除)
1.在那个坐标放一个森林蝙蝠讲笑话
2.(数据删除)
本帖最后由 阴阳师元素祭祀 于 2019-7-24 19:54 编辑
Player player = ...;
player.getEyeLocation().setDirection(vec);
player.teleport(..);
Player player = ...;
player.getEyeLocation().setDirection(vec);
player.teleport(..);
阴阳师元素祭祀 发表于 2019-7-24 19:40
Player player = ...;
player.getEyeLocation().setDirection(vec);
谢谢大佬 我去试试
本帖最后由 阴阳师元素祭祀 于 2019-7-24 19:47 编辑
三维矢量 表示向看的方向
我看了下我手上的paperspigot端 是这样的
55555hhh 发表于 2019-7-24 19:42
vec具体是什么可以请问一下嘛
我试了好多都不行
三维矢量 表示向看的方向
我看了下我手上的paperspigot端 是这样的
阴阳师元素祭祀 发表于 2019-7-24 19:40
Player player = ...;
player.getEyeLocation().setDirection(vec);
Vector v = new Vector(121,74,137);
p.getEyeLocation().setDirection(v);
玩家没有任何反应
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);
大概可以这样
如果不可以 是指任何移动发生么
看不懂咋办