我需要能够以与点到点相同的方向移动我的玩家 x 和 y 像素。很难解释,但这就是我想要做的:
角度 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 速度。那么如何获得这两个角度并将玩家移动到正确的方向呢?谢谢。