Прыжок с переменной высотой
Часть раздела Ввод и перемещение путешествия по 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 / 2velocity.y < 0 означает, что герой всё ещё поднимается. Без этого условия отпускание клавиши при спуске замедлило бы падение.
Удерживай клавишу до тех пор, пока герой не достигнет вершины прыжка, и прыжок не будет прерван.
Задание
СреднеСделай короткое нажатие прыжка небольшим подскоком.
- После
ifпрыжка добавьifдляInput.is_action_just_released("jump")иvelocity.y < 0. - Внутри него раздели
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()
Все уроки раздела Ввод и перемещение
3Гравитация и прыжки
Падение под действием гравитацииПрыжок вверхТолько с полаБег и прыжокПрыжок с переменной высотойДвойной прыжокПотренируйтесь самостоятельно: Песочница Godot