2013-12-18 3 views
1

Я создаю 2D-игру, где машины поворачиваются по пересекающимся дорогам. Автомобили получают список команд поворота (например: левый, левый, правый, левый). Когда они добираются до пересечения, они должны повернуться влево или вправо на основании текущей команды, а затем следовать по этой дороге, пока не доберутся до следующего перекрестка. Примечание: дороги могут пересекаться под любым углом, а не только под прямым углом.Определение направления движения по линии после поворота влево/вправо?

Автомобили имеют положение, скорость, команду, текущую дорогу, следующую дорогу и направление (вперед/назад).

У меня возникли проблемы с определением, какое направление на следующей дороге должно пройти автомобили после поворота, учитывая текущую дорогу, направление и команду влево/вправо. Любая помощь в том, как установить это, будет оценена по достоинству.

+0

Это непонятно. Предположительно, дороги имеют известные углы? Если так, конечно, это направление, в котором можно путешествовать? –

+0

Да, я знаю угол дорог, но я не знаю, должны ли автомобили двигаться вперед или назад по новой дороге после поворота. (Например, если автомобиль должен быть на 90 градусов или 270 градусов?) – Kine7ic

+0

Немного сложно ответить на этот вопрос, не видя, например, диаграмму того, как вы представляете вещи. Но предположительно «правый поворот» означает где-то между 0 и 180 градусами по часовой стрелке и «левый поворот» где-то между 0 и 180 градусами против часовой стрелки. Вам просто нужно выяснить, какое из двух возможных направлений дороги относится к соответствующему. –

ответ

0

Можете ли вы просто использовать триггер? Например, если вы идете на север, вы можете сказать, что ваше направление составляет 90 градусов, поэтому ваш единичный вектор равен (0, 1).

Если вы поворачиваете направо

angle -= 90; 

Левый

angle += 90; 

Тогда ваше направление вектора просто

x_component = cos(angle); 
y_component = sin(angle); 

EDIT: К сожалению, я только что прочитал часть о пересечениями быть в произвольной , неортогональные углы, позвольте мне задуматься об этом на минуту.

2

Ответ:

Нормализация направление на текущей дороге до 0 градусов. Затем, если автомобиль совершает правый поворот, новый сегмент дорожной линии будет от 0 до 180. Если он делает левый, новый сегмент дороги будет от 180 до 360.

Смежные вопросы