Menu
CoddyTech

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

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

Задание

Средне

Сделай короткое нажатие прыжка небольшим подскоком.

  1. После if прыжка добавь if для Input.is_action_just_released("jump") и velocity.y < 0.
  2. Внутри него раздели 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()

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

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