Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2010, 18:04   #1
Nazar1994
Пользователь
 
Аватар для Nazar1994
 
Регистрация: 25.10.2009
Сообщений: 75
По умолчанию Космос

Как реализовать физику полета корабля в космосе? Вид сверху. Корабль можно поворачивать. На него не действует никаких сил кроме силы тяги.(пожалуйста поподробнее)(заранее спасибо).
Nazar1994 вне форума Ответить с цитированием
Старый 22.06.2010, 21:50   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Уравнение Мещерского в зубы - и вперед!
Код:
M * ΔV / Δt = - μU
Или если сила постоянная, то
Код:
Vx += Fx / m * dt;
Vy += Fy / m * dt;
X += Vx;
Y += Vy;
Физика даже не скажу навскидку какого класса (но очень среднеобразовательного!)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 22.06.2010, 22:25   #3
Nazar1994
Пользователь
 
Аватар для Nazar1994
 
Регистрация: 25.10.2009
Сообщений: 75
По умолчанию

Спасибо,но мне нужна инерция.Я думал о том что если постоянно додавать вектор инерции и тяги то скорость с временем будет очень большая. Там наверное нужно ставить какой-то лимит?
Nazar1994 вне форума Ответить с цитированием
Старый 23.06.2010, 09:02   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Какая инерция? Инерция заложена в самих законах Ньютона - если сила равна нулю (вырубили двигатели), то получаем Vx += 0; то бишь скорость какая была, такая и осталась, а если включаем двигатели в обратном направлении, то скорость начнет уменьшаться, но какое-то время все равно будет положительной в прямом направлении.
Обычно современные космические корабли вдали от тяготеющих тел используют только маневровые движки, чтобы только менять траекторию движения, но не поддерживать скорость (это если пренебрегать солнечным ветром и столкновениями со всякой космической пылью). Все-таки это не самолеты, которые в атмосфере летают, и к земле их гравитация тянет.
А если вас смущает бесконечная скорость, то учитывайте релятивистские эффекты и переходите на соответствующие формулы.
Но, на мой взгляд, реальных альтернатив для игры две - либо по-честному выключать тяговые движки при достижении максимальной скорости, либо не смущать умы игроков и считать, что трение космической пыли слишком сильное
Код:
F = - k * V
и его нужно учитывать, то есть тяговые двигатели работают все время, а сил будет на корабль действовать как минимум две - реактивная (или уж на каком принципе построен ваш двигатель) и сила трения.
Вообще коль скоро вы хотите симулировать относительно достоверную физику, то как минимум хорошо раскурите околошкольные учебники и помедитируйте на более-менее научные книжки про космос.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 23.06.2010, 10:30   #5
Nazar1994
Пользователь
 
Аватар для Nazar1994
 
Регистрация: 25.10.2009
Сообщений: 75
По умолчанию

Спасибо!!!
Nazar1994 вне форума Ответить с цитированием
Старый 23.06.2010, 11:38   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Физика даже не скажу навскидку какого класса (но очень среднеобразовательного!)
Как приятно знать, что я учусь в классе с углублённым изучением физики...
_-Re@l-_ вне форума Ответить с цитированием
Старый 23.06.2010, 12:59   #7
Nazar1994
Пользователь
 
Аватар для Nazar1994
 
Регистрация: 25.10.2009
Сообщений: 75
По умолчанию

-Re@l- Тогда почему не ты ответил, а Гром?
Nazar1994 вне форума Ответить с цитированием
Старый 23.06.2010, 13:07   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

да он просто к словам прицепился
кстати насчет лимита, посмотрите старенькую Elite я там лимитной скорости не достигал еще
там более реально чем в серии X, то есть максимальной скорости нет, движок дает ускорение, но не лимит скорости.(хотя поидее он есть, когда ускорение уравнивается иными силами)

PS: лимита не достиг потому что влетел в солнце
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.06.2010, 13:12   #9
Nazar1994
Пользователь
 
Аватар для Nazar1994
 
Регистрация: 25.10.2009
Сообщений: 75
Радость

Спасибо. А солнце облетать надо
Nazar1994 вне форума Ответить с цитированием
Старый 23.06.2010, 16:19   #10
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Очень просто делал. Есть координаты X и Y, есть скорость SpeedX и SpeedY, и есть тяга двигателя Impuls. Угол поворота корабля меняет соотношение долей и их знак, каждая из скоростей изменяется на Impuls от значения долей (импульс делится на доли). Для игры этого более чем достаточно.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в мозиле не работает библиотека космос Wi1D HTML и CSS 0 12.04.2010 17:08