Menu
CoddyTech

Бег и прыжок

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

Движение изменяет только velocity.x. Гравитация и прыжок изменяют только velocity.y. Поэтому раздели эти две составляющие:

velocity.x = Input.get_axis("move_left", "move_right") * speed

Не задавай скорость целиком, как здесь:

velocity = Vector2(Input.get_axis("move_left", "move_right") * speed, 0)

Эта строка каждый кадр задаёт velocity.y значение 0. Она стирает скорость падения и прыжок, поэтому герой парит.

challenge icon

Задание

Легко

Пусть герой бежит, пока падает и прыгает.

  1. Перед move_and_slide() присвой velocity.x значение Input.get_axis("move_left", "move_right"), умноженное на speed.
  2. Оставь velocity.y под воздействием гравитации и прыжка.

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

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

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
	move_and_slide()

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

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