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.
Sfida
MedioFai 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()
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