gpt4 book ai didi

java - 从一点到另一点以相同的角度移动?

转载 作者:搜寻专家 更新时间:2023-11-01 08:59:32 24 4
gpt4 key购买 nike

我需要能够将我的播放器 x 和 y 像素沿与点到点相同的方向移动。很难解释,但这就是我想要做的:

enter image description here

角度 1 和角度 2 必须相同。点 1 在 (100, 100) 处保持不变,但是点 2 不断变化,角度也必须如此。我试过这个:

moveRectangle.setX(touchEvent.getX());
moveRectangle.setY(touchEvent.getY());
float theta = (float) Math.toDegrees(Math.atan2(touchEvent.getY() - 100,touchEvent.getY() - 100));
float velX = (float) (getSpeed() * Math.cos(theta));
float velY = (float) (getSpeed() * Math.sin(theta));
player.move(velX, velY);

当用户将手指放在 moveRectangle(点 2)上并移动它时,上面的代码不断运行。但是上面的代码不起作用。玩家只是朝两个方向之一移动。 player.move 只是增加了 velX 和 velY 速度。那么我怎样才能得到这两个角度并将玩家移动到正确的方向呢?谢谢。

最佳答案

使用笛卡尔方法( vector )与极坐标方法(角度和幅度)相比,解决这个问题会更容易吗?所以,如果玩家在点 p0 而“手指”在点 p1,那么玩家应该移动的方向 v 是由 vector p1-p0 给出。然后,您可以根据玩家的速度缩放生成的 vector v,并将玩家的速度添加到他的位置。您可以逐帧轻松执行此操作。

关于java - 从一点到另一点以相同的角度移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16267712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com