使球移动到指定方向

Make ball move to specify direction

我想让球向某个方向移动,就像我给出的数字 0 - 360。目前我的约定是:

0 向右移动,90 向下移动,180 向左移动,270 向上移动。

问题是,如果我输入 10、11、12 等,它根本不动。有些数字使它以某种方式移动 45 度角。

我当前的代码:

float x = 0, y = 0;
float speed = 1f;

int angle = 90;

float moveX += speed * Math.cos(Math.toRadians(angle));
float moveY += speed * Math.sin(Math.toRadians(angle));

x += moveX;
y += moveY;

moveX = 0;
moveY = 0;

如果我起跳toRadians,球会朝不同的方向移动,但仍然不起作用。

我的数学和英语很糟糕所以尽量解释得简单些。而且我不知道弧度和度数之间的区别。

在循环之前实例化moveX和moveY

I don't know differences between radians and degrees etc.

这不完全是这个网站,但这里有一个简单的解释。弧度和度数是 2 个测量单位(如公里和英里)。一个圆有 360 度,或 2π 弧度。也就是说

1 degree = π/180 (0.0174533) radians
1 radian = 180/π (57.2958) degrees

使用弧度的圆上的 4 个基本方向为 0 或 2π、π/2、π、3π/2,对应于 0 或 360、90、180、270 度。

I want to make ball move to certain direction like I give number from 0 - 360

现在开始你的代码。您在

行中有语法错误
float moveX += speed * Math.cos(Math.toRadians(angle));

您刚刚声明了 moveX,所以您不用 += 添加它,您只需用 = 赋值给它。与 moveY 相同。现在,如果您在

之后打印 xy
x += moveX;
y += moveY;

你会得到正确的结果。我不知道为什么之后你将它们设置为 0 - 你会失去球的位置。