使球移动到指定方向
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
相同。现在,如果您在
之后打印 x
和 y
x += moveX;
y += moveY;
你会得到正确的结果。我不知道为什么之后你将它们设置为 0 - 你会失去球的位置。
我想让球向某个方向移动,就像我给出的数字 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
相同。现在,如果您在
x
和 y
x += moveX;
y += moveY;
你会得到正确的结果。我不知道为什么之后你将它们设置为 0 - 你会失去球的位置。