В некоторых играх можно заметить как персонаж прыгает на разную высоту в зависимости от того, насколько долго вы жмете на кнопку прыжка.
В этой статье рассмотрим один из вариантов решения подобной задачки.
Сразу оговорюсь, данное решение возможно не идеальное, но для меня этот метод оказался вполне рабочим.
Итак, добавляем в сцену пару платформ, и создаем префаб персонажа . Само собой это CharacterBody2D.
сцена:
персонаж:
Я добавил три кнопки в управление - Left (A) , Right(D) и прыжок Space(space)
Для начала накидаем базовый скрипт который позволит нам ходить и прыгать.
Для того чтобы персонаж мог прыгать более продолжительно заменим метод is_action_just_pressed на is_action_pressed.
Таким образом, теперь когда мы зажмем кнопку прыжка наш персонаж будет улетать вверх пока мы её не отпустим.
Собственно говоря , всё что нам остается - ограничить длительность нажатия при помощи переменной.
Логика при этом простая - пока кнопка зажата, мы прибавляем какое то число. И как только мы достигли определенного значения прыжок прекращается.
Так как мы находимся в _process , то незабываем использовать delta в расчетах.
Проверяем .
( я добавил цветной квадрат сбоку, чтобы было видно время зажатия кнопки прыжка (красный цвет))
Можно заметить что при быстром нажатии персонаж не долетает до платформы, а если нажимать и держать то прыгает выше.
На этом всё.
Подписывайтесь на канал, вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !