![]() |
![]() |
Jorik |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Захотелось написать игру на Паскале. Раньше никогда не пробовал, но вот решил начать с не очень лёгкого варианта - бильярда.
В принципе, начало уже есть: шарик толкается, отскакивает от бортов. Пришлось перепробывать кучу формул, пока удалось подобрать подходящую для движения шара. Остановился на логарифмической зависимости... А вот как научить шар "взаимодействовать" с другими шарами - это вопрос... И желательно, чтобы это выглядело более или менее реалистично. Управление: влево, вправо - поворот кия; пробел - удар (справа на экране есть индикатор силы удара); ESC - выход. Вообщем, кому интересно - посмотрите, прокоментируйте! Буду рад, если кого-то заинтересую ![]() Прикрепленные файлы ![]() |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Чтобы не быть голословным, приведу формулу движения тела под действием силы трения с выводом.
Исходим из закона Ньютона, F = m*a Сила трения: F = k*G = k*m*g Отсюда, a = F/m = (k*m*g)/m = k*g Ускорение - это вторая производная пути s'' = - k*g Минус учитывает тот факт, что сила направлена против движения. Интегрирование дает: s = s0 + V0*t - (k*g*t^2)/2 Или по координатам: x = x0 + Vx0*t - (k*g*cos(A)*t^2)/2 Здесь А - это угол наклона скорости к оси Х. Уравнения, как видишь, простые. Не забудь только прекратить расчет, когда скорость достигнет нуля. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 16:29 |