沿直线移动对象

时间:2012-07-20 06:57:45

标签: java android math path line

我正在尝试沿着直线路径移动Sprite。我希望在斜率上移动5个像素,或者每次我通过该方法时将斜边移动到斜边,直到我到达终点。

我有线的斜率和y截距,我也通过getX()和getY()得到精灵的当前X和Y值。最后的X和Y指向停止的是变量finalX和finalY。

我尝试了很多方程式,但我似乎无法让它们中的任何一个起作用。我错过了什么!!?

Hopefully this image makes sense for what I am trying to do!

我的最新等式试图使用y = mx + b。

float X = (getY() + 5 - interceptY)/slope;
float Y = slope*(getX() + 5) + interceptY;
setPosition(X, Y);

1 个答案:

答案 0 :(得分:4)

可以帮助你从我最近的游戏中获得一些方程式,代码在旋转时移动一个对象:

float xDirection = FloatMath.sin((float) Math.toRadians(getRotation()))
            * currentSpeed;
float yDirection = FloatMath.cos((float) Math.toRadians(getRotation()))
            * -currentSpeed;

float newX = getX() + xDirection;
float newY = getY() + yDirection;

你只需要得出你需要你的精灵移动的角度,这将为你做。希望这会有所帮助。