Salto variable
Parte de la sección Entrada y movimiento del Journey de Godot de Coddy. Lección 16 de 28.
En la mayoría de los juegos de plataformas, una pulsación breve provoca un pequeño salto y mantener presionado un botón produce un salto completo.
Para hacerlo, interrumpe el salto cuando se suelte el botón. Input.is_action_just_released("jump") es true durante el único fotograma en que se suelta la tecla. Si el héroe aún está subiendo en ese momento, reduce a la mitad su velocidad ascendente:
if Input.is_action_just_released("jump") and velocity.y < 0:
velocity.y = velocity.y / 2velocity.y < 0 significa que el héroe aún está subiendo. Sin esa condición, soltar la tecla durante el descenso ralentizaría la caída.
Mantén presionada la tecla hasta pasar el punto más alto del salto y no se interrumpirá.
Desafío
IntermedioHaz que un toque breve de salto produzca un pequeño brinco.
- Después del
ifdel salto, añade unifparaInput.is_action_just_released("jump")yvelocity.y < 0. - Dentro de él, divide
velocity.ypor la mitad.
Pulsa «Jugar»: un toque rápido de la barra espaciadora produce un brinco, y mantenerla pulsada hace que el salto sea completo. Después, pulsa «Comprobar».
Pruébalo tú mismo
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()
Todas las lecciones de Entrada y movimiento
2CharacterBody2D
CharacterBody2DCamina con velocidadLas paredes te detienenCamina por todas partesDiagonales equilibradas5Proyecto: Héroe de plataformas
Héroe: correrHéroe: saltar3Gravedad y saltos
Caer con la gravedadSaltar hacia arribaSolo desde el sueloCorrer y saltarSalto variableDoble saltoPractica por tu cuenta: Playground de Godot