Menu
CoddyTech
flag Ru iconРусскийdown icon

Двойной прыжок

Часть раздела Ввод и перемещение путешествия по 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.

challenge icon

Задание

Средне

Добавь герою двойной прыжок. Он может прыгнуть дважды, прежде чем приземлится, но не трижды. Считай прыжки в переменной 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()
quiz iconПроверьте себя

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

Все уроки раздела Ввод и перемещение

Потренируйтесь самостоятельно: Песочница Godot