@coi1751

Как сделать физику торможения в pygame(Python)?

Стало интересно поиграться с написанием мини игрушек.. а так как предмет моего изучения Python, я выбрал библиотеку pygame. Хочу сделать физику торможения, чтобы когда отпускаешь кнопку, например вправо, персонаж(пока еще кубик) останавливался не сразу, а немного "проехав".
for i in pygame.event.get():
        if i.type == pygame.QUIT:
            work = False
    keys = pygame.key.get_pressed() 
    if keys[pygame.K_LEFT] and Player.x > 0:
        Player.x -= Player.speed
    if keys[pygame.K_RIGHT] and Player.x < 640 - Player.width:
        Player.x += Player.speed

Вот я принимаю событие нажатий клавиш стрелка влево и вправо, то есть нажал - персонаж перемещается на Player.speed, отпустил - не перемещается. Как реализовать, чтобы когда отпустил клавишу кубик с угасанием перемещался дальше, а не останавливался мгновенно?
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 1
@deliro
Агрессивное программирование
Для этого нужно всего лишь изучить физику 8го класса.

Ускорение = 0
Пользователь жмёт кнопку — Ускорение = N (единиц расстояния / единицу времени2)
Отпускает — ускорение = 0

Замедление будет какой-то константой. Пусть будет N / 2. Это имитация какой-нибудь силы трения.

Каждый тик увеличиваешь скорость на (ускорение - замедление) * (время тика / твоя единица времени)
Если скорость 0, то замедление заменяется нулём
Если при нажатии нужно мгновенно задать скорость — обрабатываешь это отдельно.
Предел максимальной скорости (если он есть) тоже нужно обрабатывать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 150 000 до 250 000 руб.
YLab Тольятти
от 90 000 до 150 000 руб.
Платформа НТИ Москва
от 130 000 до 180 000 руб.
20 апр. 2019, в 19:48
10000 руб./за проект
20 апр. 2019, в 16:31
500 руб./в час
20 апр. 2019, в 15:00
10000 руб./за проект