Двойной прыжок
Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 17 из 28.
Двойной прыжок позволяет герою прыгнуть ещё раз в воздухе. is_on_floor() не может это обеспечить, поэтому герой считает свои прыжки.
Храни счётчик в переменной. Устанавливай его равным 2, когда герой находится на земле, и уменьшай на единицу при каждом прыжке:
var jumps_left = 0
func _physics_process(delta):
velocity.y += gravity * delta
if is_on_floor():
jumps_left = 2
if Input.is_action_just_pressed("jump") and jumps_left > 0:
velocity.y = jump_velocity
jumps_left -= 1После первого прыжка значение jumps_left становится равным 1, а после прыжка в воздухе — 0. Третье нажатие ничего не делает. После приземления значение снова становится равным 2.
Задание
СреднеДобавь герою двойной прыжок. Он может прыгнуть дважды, прежде чем приземлится, но не трижды. Считай прыжки в переменной jumps_left, которой на полу присваивается значение 2.
Попробуйте сами
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
if Input.is_action_just_released("jump") and velocity.y < 0:
velocity.y = velocity.y / 2
velocity.x = Input.get_axis("move_left", "move_right") * speed
move_and_slide()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ввод и перемещение
3Гравитация и прыжки
Падение под действием гравитацииПрыжок вверхТолько с полаБег и прыжокПрыжок с переменной высотойДвойной прыжокПотренируйтесь самостоятельно: Песочница Godot