Menu
CoddyTech
flag Pt iconPortuguêsdown icon

Pulo Duplo

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

Um pulo duplo permite que o herói pule mais uma vez no ar. is_on_floor() não permite isso, então o herói conta seus pulos.

Mantenha a contagem em uma variável. Defina-a como 2 enquanto o herói estiver no chão e subtraia um a cada pulo:

var jumps_left = 0

func _physics_process(delta):
	velocity.y += gravity * delta
	if is_on_floor():
		jumps_left = 2
	if Input.is_action_just_pressed("jump") and jumps_left > 0:
		velocity.y = jump_velocity
		jumps_left -= 1

O primeiro pulo faz com que jumps_left seja 1, e o pulo no ar faz com que seja 0. Um terceiro pressionamento não faz nada. Ao aterrissar, o valor volta a 2.

challenge icon

Desafio

Médio

Dê ao herói um salto duplo. Ele pode pular duas vezes antes de aterrissar, nunca três vezes. Conte os saltos em uma variável jumps_left, definida como 2 quando estiver no chão.

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
	if Input.is_action_just_released("jump") and velocity.y < 0:
		velocity.y = velocity.y / 2
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Entrada e movimento

Pratique por conta própria: Playground de Godot