Алгоритм рулевого управления? - PullRequest
4 голосов
/ 25 октября 2010

Я уже спрашивал что-то подобное, но теперь у меня проблема с управлением и реализацией "реалистичного" рулевого управления для простой двухмерной (сверху вниз) автомобильной гонки.

Как мне сделать "реалистичное" рулевое управление для автомобиля?(Я использую C #, но приветствуется другой язык;)) Использование Sin и Cos?Если да, то как?Заранее спасибо!

Ответы [ 3 ]

9 голосов
/ 25 октября 2010

У меня обеденный перерыв, поэтому я не могу отдать должное «лучшему» ответу, но псевдокод выглядит примерно так:

y_change = sin(rotation) * speed;
x_change = cos(rotation) * speed;

car.x += x_change;
car.y += y_change;

вы выполняете этот код в каждом кадре; вращение будет контролироваться вашим рулевым управлением, а скорость - вашим ускорением.

1 голос
/ 25 октября 2010

Возможно, вы захотите использовать физический движок, который кто-то другой уже создал.Я слышал хорошие вещи о XNA Physics API .

. Я бы подумал, что вам придется использовать синус и косинус, но это только верхушка ОЧЕНЬ большого айсберга...

0 голосов
/ 26 октября 2010

Алгоритм:

  1. Запишите, как кто-то другой ездит (используя версию игры)

  2. (Необязательно) Разделите запись на фрагменты для различных обычных ситуаций.

  3. Воспроизведение записей в игре. (Использование подходящих фрагментов и, возможно, интерполяция траектории между ними). ​​

Вы также можете попробовать нечеткую логику и простую модель рулевого управления.

Модель будет:

x = integrate horiz_velocity by t
horiz_velocity = intergate steering_angle by t
and steering_angle = fuzzy_steering_function(...)
...