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

Прыжок с переменной высотой

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

velocity.y < 0 означает, что герой всё ещё поднимается. Без этой проверки отпускание клавиши на пути вниз замедлило бы падение.

Удерживай клавишу до тех пор, пока герой не достигнет вершины прыжка, и прыжок не будет прерван.

challenge icon

Задание

Средне

Сделай так, чтобы короткое нажатие 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()
quiz iconПроверьте себя

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

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

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