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 in aria. is_on_floor() non può consentirlo, quindi l’eroe conta i propri salti.

Conserva 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 e 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. Può saltare due volte prima di atterrare, mai tre. Conta i salti in una variabile jumps_left impostata a 2 quando è a terra.

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