我想让球向某个方向移动,就像我给出数字一样 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
,球会向不同的方向移动,但仍然无效。
我的数学和英语很糟糕所以尽量解释这个简单。我不知道弧度和度数之间的差异。
答案 0 :(得分:0)
我不知道弧度和度数之间的差异等。
这不完全是这个网站,但这里有一个简单的解释。弧度和度数是2个测量单位(如公里和英里)。圆形具有360度或2π弧度。这意味着
1 degree = π/180 (0.0174533) radians
1 radian = 180/π (57.2958) degrees
使用辐射的圆上的4个基本方向将是0或2π,π/ 2,π,3π/ 2对应于0或360,90,280,270度。
我想让球向某个方向移动,就像我给0到360之间的数字
现在你的代码。您在行
中有语法错误float moveX += speed * Math.cos(Math.toRadians(angle));
您刚刚声明moveX
,因此您不会使用+=
添加=
,只需使用moveY
进行分配。与x
相同。现在,如果您在
y
和x += moveX;
y += moveY;
$result = $MailChimp->get('/lists/'.$list_id.'/members/');
您将获得正确的结果。我不知道为什么在你将它们设置为0后 - 你将失去球的位置。
答案 1 :(得分:-2)
在循环之前实例化moveX和moveY