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 numero diverso per la decelerazione, 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)== controlla se due valori sono uguali. Un solo = assegna un valore a una variabile. direction == 0 è vero quando non si tiene premuto alcun tasto.
Un valore basso di friction, come 300, fa scivolare come sul ghiaccio. Un valore alto, come 2400, ferma il personaggio in pochi fotogrammi.
Sfida
MedioFai fermare rapidamente l'eroe quando rilasci.
- Metti la riga
move_towardsottoelse:. - Sopra di essa, sotto
if direction == 0:, rallentavelocity.xfino a0difriction * deltaconmove_toward.
Premi «Gioca», corri e rilascia: l'eroe scivola un po', poi si ferma. Poi premi «Verifica».
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()
Tutte le lezioni di Input e movimento
Esercitati da solo: Playground Godot