Menu
CoddyTech

Salto Variável

Parte da seção Entrada e movimento do Journey de Godot da Coddy. Lição 16 de 28.

Na maioria dos jogos de plataforma, um toque faz o personagem dar um pequeno salto, enquanto manter o botão pressionado faz um salto completo.

Para fazer isso, interrompa o salto quando o botão for solto. Input.is_action_just_released("jump") é verdadeiro no único quadro em que a tecla é solta. Se o herói ainda estiver subindo nesse momento, reduza pela metade a velocidade para cima:

if Input.is_action_just_released("jump") and velocity.y < 0:
	velocity.y = velocity.y / 2

velocity.y < 0 significa que o herói ainda está subindo. Sem isso, soltar a tecla durante a descida reduziria a velocidade da queda.

Se você mantiver a tecla pressionada até passar pelo ponto mais alto do salto, nada será interrompido.

challenge icon

Desafio

Médio

Faça com que um toque rápido no botão de pulo resulte em um pulinho.

  1. Depois do if do pulo, adicione um if para Input.is_action_just_released("jump") e velocity.y < 0.
  2. Dentro dele, divida velocity.y pela metade.

Pressione “Jogar”: um toque rápido na barra de espaço resulta em um pulinho, e mantê-la pressionada faz o pulo completo. Depois, clique em “Verificar”.

Experimente você mesmo

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 as lições de Entrada e movimento

Pratique por conta própria: Playground de Godot