Я делаю LunarLander
в C
. Мой корабль вращается между PI/2
и -PI/2
. И оборот на шаг равен PI/ 20
. Мне нужен способ определить, когда мой корабль повернулся на 1 радиан. Итак, когда 1 радиан вращается, топливо уменьшается на 1 единицу.
Я подумал сначала перевести свой угол в градусы, а затем посмотреть, больше ли угол 57, потому что 1 радиан равен 57 градусам. Но я не мог написать это в своей программе, потому что идея неполная. Хотя это просто то, о чем я подумал, я думаю, что решение приходит с той стороны, сравните с теми 57-градусными
while(1)
//code
case SDLK_RIGHT:
angle += SHIP_ROTATION_PER_STEP;
if(angle > (PI/2)){
angle = (PI/2);
break;
}
break;
case SDLK_LEFT:
angle -= SHIP_ROTATION_PER_STEP;
if(angle < -(PI/2)){
angle = -(PI/2);
break;
}
break;
//code
//during the while
Мне нужна идея, чтобы сравнить, если бы все, что двигало мой корабль, составляло 1 радиан. Если сумма оборотов за шаг больше 1 радиана. Но я не могу понять, как
SHIP_ROTATION_PER_STEP
естьPI/20
. Таким образом, каждый шаг составляет 9 градусов. Таким образом, на каждом 7-м обороте корабль будет вращаться на 1 радиан (либо вперед/назад/или их комбинацию). - person David C. Rankin   schedule 24.07.2019SHIP_ROTATION_PER_STEP
. - person Eugene Sh.   schedule 24.07.2019