Menu
CoddyTech

Прыжок вверх

Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 13 из 28.

Чтобы прыгнуть, задайте velocity.y большую скорость вверх в тот кадр, когда игрок нажимает jump. Вверх — это меньшее значение y, поэтому число отрицательное:

var jump_velocity = -500

func _physics_process(delta):
	velocity.y += gravity * delta
	if Input.is_action_just_pressed("jump"):
		velocity.y = jump_velocity
	move_and_slide()

Кодировать движение вниз не нужно. Гравитация продолжает увеличивать velocity.y, поэтому герой замедляется при подъёме, останавливается в верхней точке и падает обратно.

Используйте is_action_just_pressed, а не is_action_pressed. Если удерживать клавишу, скорость будет устанавливаться равной -500 каждый кадр, и герой улетит за пределы экрана.

challenge icon

Задание

Легко

Заставь героя прыгать.

  1. Между строкой с гравитацией и move_and_slide() добавь if для Input.is_action_just_pressed("jump").
  2. Внутри него присвой velocity.y значение jump_velocity.

Нажми «Играть», затем нажми пробел: герой подпрыгнет и снова приземлится, а удерживание пробела не заставит его летать. Затем нажми «Проверить».

Попробуйте сами

extends CharacterBody2D

var gravity = 1000
var jump_velocity = -500

func _physics_process(delta):
	velocity.y += gravity * delta
	move_and_slide()

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

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