Бег и прыжок
Часть раздела Ввод и перемещение путешествия по 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. Она стирает скорость падения и прыжок, поэтому герой парит.
Задание
ЛегкоПусть герой бежит, пока падает и прыгает.
- Перед
move_and_slide()присвойvelocity.xзначениеInput.get_axis("move_left", "move_right"), умноженное наspeed. - Оставь
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()
Все уроки раздела Ввод и перемещение
3Гравитация и прыжки
Падение под действием гравитацииПрыжок вверхТолько с полаБег и прыжокПрыжок с переменной высотойДвойной прыжокПотренируйтесь самостоятельно: Песочница Godot