Menu
CoddyTech

Salto variabile

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

Nella maggior parte dei platform, premere brevemente un pulsante provoca un piccolo salto, mentre tenerlo premuto provoca un salto completo.

Per farlo, interrompi il salto quando il pulsante viene rilasciato. Input.is_action_just_released("jump") è true nel singolo fotogramma in cui il tasto viene rilasciato. Se in quel momento l’eroe sta ancora salendo, dimezza la sua velocità verso l’alto:

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

velocity.y < 0 significa che l’eroe sta ancora salendo. Senza questa condizione, rilasciare il tasto durante la discesa rallenterebbe la caduta.

Tieni premuto il tasto fino a dopo il punto più alto del salto e il salto non verrà interrotto.

challenge icon

Sfida

Medio

Fai in modo che un breve tocco di salto produca un piccolo balzo.

  1. Dopo l’if del salto, aggiungi un if per Input.is_action_just_released("jump") e velocity.y < 0.
  2. Al suo interno, dimezza velocity.y.

Premi «Gioca»: un tocco rapido della barra spaziatrice produce un balzo, mentre tenerla premuta esegue il salto completo. 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
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()

Tutte le lezioni di Input e movimento

Esercitati da solo: Playground Godot