Gel à l’impact
Fait partie de la section Sensations de jeu du Journey Godot de Coddy. Leçon 17 sur 23.
Un arrêt sur impact suspend le jeu pendant une fraction de seconde lorsqu'un coup porte. Cela donne plus de force à l'impact.
Engine.time_scale correspond à la vitesse de l'horloge du jeu. À 1, le jeu tourne normalement. À 0.05, les déplacements, les interpolations et les minuteries tournent vingt fois plus lentement.
Engine.time_scale = 0.05
await get_tree().create_timer(0.1, true, false, true).timeout
Engine.time_scale = 1.0Une minuterie normale fonctionne selon l'horloge ralentie : 0.1 seconde durerait donc deux secondes réelles. Le dernier true dans create_timer fait que la minuterie ignore time_scale et compte les secondes réelles. Les deux valeurs précédentes sont les valeurs par défaut habituelles.
Rétablis toujours time_scale à 1. Cela affecte tout le jeu et reste ainsi jusqu'à ce que ton code le modifie.
Défi
MoyenFige le jeu un instant lorsqu’un coup est porté.
- Après le flash dans
hit(), définisEngine.time_scalesur0.05. - Attends 0.1 seconde réelle avec un minuteur qui ignore l’échelle de temps, comme indiqué ci-dessus.
- Rétablis
Engine.time_scaleà1.0.
Appuie sur « Jouer », puis sur E : le drone s’arrête un instant. Ensuite, appuie sur « Vérifier ».
Essayez vous-même
extends Node2D
func hit():
modulate = Color(4, 4, 4)
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.3)
Toutes les leçons de Sensations de jeu
1Interpolations
Votre première interpolationInterpoler n’importe quelle propriétéDisparition progressiveDécélérationL’un après l’autreEn même tempsUne pièce qui jaillit4Flashs et retours visuels
Flash lors d’un impactGel à l’impactCompression et étirementNombres flottantsEntraînez-vous par vous-même : Playground Godot