В 3D-симуляторе полетов с уровнем реалистичности Crimson Skies (например, уровень аркады, а не реалистичность), как вы определяете движение самолета в каждом такте игровых часов?
(Crimson Skies - это аркадный симулятор полета: http://youtu.be/OWmYt0LZDnU?t=3m )
Я предполагаю, что игра продвигается фиксированными шагами, и каждый шаг каждого движущегося объекта движется по прямой линии с постоянной скоростью от его текущего положения к следующему.
Какие основные параметры вам понадобятся для определения массы, скорости, дроссельной заслонки и т. Д. И как бы вы их совместили?
physics
simulations
Будет
источник
источник
Ответы:
Чтобы понять, как имитировать аэродинамический полет, нужно сначала понять, какие силы влияют на движение самолета. Фактическая траектория полета самолета является суммой всех этих физических эффектов:
Первый и второй закон движения Ньютона
Тяга двигателя
Тяга двигателя - это сила, которая ускоряет летательный аппарат вперед и обычно может контролироваться игроком. Ускорение - это мощность двигателя, деленная на массу самолета.
Сила тяжести
Гравитация постоянно приближает летательный аппарат вниз со скоростью 9,81 м / с². В теории гравитация становится меньше, когда вы поднимаетесь выше, но на высоте, на которой работают обычные самолеты, это можно игнорировать.
Аэродинамическое сопротивление
Чем быстрее движется самолет, тем больше замедляется атмосферное трение. Это представлено силой, ускоряющейся в направлении против текущего направления движения корабля. Сила увеличивается квадратично со скоростью (двойная скорость = четырехкратное усилие сопротивления). Но чем выше летит самолет, тем тоньше атмосфера и тем меньше сила сопротивления. Максимальная скорость самолета - это то, где силы, создаваемые тягой двигателя и аэродинамическим сопротивлением, компенсируют друг друга.
Это может показаться нелогичным, но наличие более сильной константы перетаскивания фактически сделает вашу игру более легкой (более похожей на аркаду), потому что перетаскивание - это сила, которая не дает самолету лететь в направлении, в котором игрок не хочет летать больше (как при полете по кривой). Так что больше сопротивления = медленные и более маневренные самолеты. Вы можете дополнительно улучшить это, увеличивая сопротивление, когда есть разница между направлением курса и направлением движения самолета (это даже нереально - аэродинамический профиль самолета оптимизирован для наименьшего сопротивления воздуха, когда самолет летит прямо ).
Аэродинамический лифт
Это сила, которая фактически заставляет самолет летать. Он генерируется крыльями. Чем больше поверхность крыла, тем больше подъемная сила создается, и самолет ускоряется вверх (относительно крыльев, а не земли. Когда самолет катится вбок, подъемник также ускоряет его вбок). Как и атмосферное сопротивление, подъемная сила зависит от скорости и плотности атмосферы.
Поверхности управления
Самолет контролирует свое направление с помощью различных управляющих поверхностей для тангажа, рыскания и крена. Поверхность управления работает только тогда, когда самолет движется. Его эффективность пропорциональна текущей скорости и плотности атмосферы. Обратите внимание, что управляющие поверхности изменяют только направление, в котором указывает плоскость, а не направление, в котором она движется. Это влияет на направление тяги и подъема и, следовательно, постепенно направление движения.
источник