我正在尝试沿着直线路径移动Sprite。我希望在斜率上移动5个像素,或者每次我通过该方法时将斜边移动到斜边,直到我到达终点。
我有线的斜率和y截距,我也通过getX()和getY()得到精灵的当前X和Y值。最后的X和Y指向停止的是变量finalX和finalY。
我尝试了很多方程式,但我似乎无法让它们中的任何一个起作用。我错过了什么!!?
我的最新等式试图使用y = mx + b。
float X = (getY() + 5 - interceptY)/slope;
float Y = slope*(getX() + 5) + interceptY;
setPosition(X, Y);
答案 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;
你只需要得出你需要你的精灵移动的角度,这将为你做。希望这会有所帮助。