Friction
Fait partie de la section Entrées et déplacements du Journey Godot de Coddy. Leçon 19 sur 28.
La plupart des personnages de jeu s’arrêtent plus vite qu’ils ne démarrent. Le ralentissement lorsqu’aucune touche n’est maintenue est la friction.
Pour utiliser un nombre différent pour l’arrêt, le code a besoin de deux chemins. else donne un deuxième chemin à if, et l’un des deux s’exécute exactement :
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)== vérifie si deux valeurs sont égales. Un seul = définit une variable. direction == 0 est vrai lorsqu’aucune touche n’est maintenue.
Une petite valeur de friction, comme 300, fait glisser comme sur de la glace. Une grande valeur, comme 2400, arrête en quelques images.
Défi
MoyenFais en sorte que le héros s’arrête rapidement. Lorsqu’aucune touche n’est maintenue, réduis velocity.x à 0 de friction * delta par image. Lorsqu’une touche est maintenue, continue d’accélérer de acceleration.
Essayez vous-même
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()
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Entrées et déplacements
2CharacterBody2D
CharacterBody2DSe déplacer avec une vélocitéLes murs vous arrêtentSe déplacer partoutDiagonales équilibrées5Projet : Héros de jeu de plateforme
Héros : CourirHéros : SauterEntraînez-vous par vous-même : Playground Godot