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 / 2velocity.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.
Desafio
MédioFaça com que um toque rápido no botão de pulo resulte em um pulinho.
- Depois do
ifdo pulo, adicione umifparaInput.is_action_just_released("jump")evelocity.y < 0. - Dentro dele, divida
velocity.ypela 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
3Gravidade e Salto
Cair com a GravidadePular para CimaSomente do ChãoCorrer e PularSalto VariávelPulo DuploPratique por conta própria: Playground de Godot