Menu
CoddyTech

Attrito

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

La maggior parte dei personaggi dei giochi si ferma più velocemente di quanto acceleri. Il rallentamento quando non si tiene premuto alcun tasto è l'attrito.

Per usare un valore diverso per fermarsi, il codice ha bisogno di due percorsi. else fornisce a if un secondo percorso e ne viene eseguito esattamente uno dei due:

if direction == 0:
	velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
	velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)

== verifica se due valori sono uguali. Un = assegna un valore a una variabile. direction == 0 è vero quando non si tiene premuto alcun tasto.

Un friction basso, come 300, fa scivolare come sul ghiaccio. Uno alto, come 2400, ferma in pochi fotogrammi.

challenge icon

Sfida

Medio

Fai in modo che l'eroe si fermi rapidamente. Quando non tieni premuto alcun tasto, riduci velocity.x a 0 di friction * delta per fotogramma. Quando tieni premuto un tasto, continua ad accelerare usando acceleration.

Provalo tu

extends CharacterBody2D

var speed = 220
var acceleration = 900
var friction = 2400
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
	var direction = Input.get_axis("move_left", "move_right")
	velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
	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