Найти тему
Игровой движок Godot engine

№174. Зависимость высоты прыжка от нажатия на кнопку.

В некоторых играх можно заметить как персонаж прыгает на разную высоту в зависимости от того, насколько долго вы жмете на кнопку прыжка.
В этой статье рассмотрим один из вариантов решения подобной задачки.

Сразу оговорюсь, данное решение возможно не идеальное, но для меня этот метод оказался вполне рабочим.

Итак, добавляем в сцену пару платформ, и создаем префаб персонажа . Само собой это CharacterBody2D.

сцена:

персонаж:

-2

Я добавил три кнопки в управление - Left (A) , Right(D) и прыжок Space(space)

-3

Для начала накидаем базовый скрипт который позволит нам ходить и прыгать.

-4
-5

Для того чтобы персонаж мог прыгать более продолжительно заменим метод is_action_just_pressed на is_action_pressed.
Таким образом, теперь когда мы зажмем кнопку прыжка наш персонаж будет улетать вверх пока мы её не отпустим.

-6
-7

Собственно говоря , всё что нам остается - ограничить длительность нажатия при помощи переменной.
Логика при этом простая - пока кнопка зажата, мы прибавляем какое то число. И как только мы достигли определенного значения прыжок прекращается.

-8

Так как мы находимся в _process , то незабываем использовать delta в расчетах.

Проверяем .
( я добавил цветной квадрат сбоку, чтобы было видно время зажатия кнопки прыжка (красный цвет))

-9

Можно заметить что при быстром нажатии персонаж не долетает до платформы, а если нажимать и держать то прыгает выше.

На этом всё.
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !