Прыжок с переменной высотой
Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 16 из 28.
В большинстве платформеров короткое нажатие вызывает небольшой прыжок, а удержание кнопки — полноценный прыжок.
Для этого прерви прыжок, когда кнопка будет отпущена. Input.is_action_just_released("jump") имеет значение true в течение одного кадра после отпускания клавиши. Если в этот момент герой всё ещё поднимается, уменьши его скорость вверх вдвое:
if Input.is_action_just_released("jump") and velocity.y < 0:
velocity.y = velocity.y / 2velocity.y < 0 означает, что герой всё ещё поднимается. Без этой проверки отпускание клавиши на пути вниз замедлило бы падение.
Удерживай клавишу до тех пор, пока герой не достигнет вершины прыжка, и прыжок не будет прерван.
Задание
СреднеСделай так, чтобы короткое нажатие jump вызывало небольшой прыжок. Если отпустить клавишу, пока герой ещё поднимается, раздели velocity.y пополам. Если удерживать клавишу, прыжок будет полным.
Попробуйте сами
extends CharacterBody2D
var speed = 220
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
velocity.x = Input.get_axis("move_left", "move_right") * speed
move_and_slide()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ввод и перемещение
3Гравитация и прыжки
Падение под действием гравитацииПрыжок вверхТолько с полаБег и прыжокПрыжок с переменной высотойДвойной прыжокПотренируйтесь самостоятельно: Песочница Godot