Menu
CoddyTech

Doppio salto

Fa parte della sezione Input e movimento del percorso Godot di Coddy. Lezione 17 di 28.

Il doppio salto permette all’eroe di saltare ancora una volta mentre è in aria. is_on_floor() non può permetterlo, quindi l’eroe conta i suoi salti.

Tieni il conteggio in una variabile. Impostalo a 2 quando l’eroe è a terra e sottrai uno per ogni salto:

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

Il primo salto porta jumps_left a 1, mentre il salto in aria lo porta a 0. Una terza pressione non fa nulla. Quando atterra, il valore torna a 2.

challenge icon

Sfida

Medio

Fai fare un doppio salto all’eroe.

  1. Aggiungi var jumps_left = 0 all’inizio e impostalo su 2 mentre is_on_floor().
  2. Salta quando jumps_left > 0 invece di is_on_floor() e sottrai uno a jumps_left.

Premi «Gioca»: l’eroe salta due volte prima di atterrare, mai tre. Poi premi «Verifica».

Provalo tu

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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Input e movimento

Esercitati da solo: Playground Godot