Congelamento ao Acertar
Parte da seção Sensação de jogo do Journey de Godot da Coddy. Lição 17 de 23.
O congelamento do impacto pausa o jogo por uma fração de segundo quando um golpe acerta. Isso faz o golpe parecer forte.
Engine.time_scale é a velocidade do relógio do jogo. Em 1, o jogo funciona normalmente. Em 0.05, movimentos, tweens e temporizadores funcionam vinte vezes mais devagar.
Engine.time_scale = 0.05
await get_tree().create_timer(0.1, true, false, true).timeout
Engine.time_scale = 1.0Um temporizador normal funciona com o relógio desacelerado, então 0.1 segundo duraria dois segundos reais. O último true em create_timer faz o temporizador ignorar time_scale e contar segundos reais. Os dois valores anteriores a ele são os valores padrão usuais.
Sempre defina time_scale novamente como 1. Isso afeta o jogo inteiro e permanece assim até que seu código altere o valor.
Desafio
MédioCongele o jogo por um momento ao acertar.
- Depois do flash em
hit(), definaEngine.time_scalecomo0.05. - Aguarde 0.1 segundo real em um temporizador que ignora a escala de tempo, como mostrado acima.
- Defina
Engine.time_scalenovamente como1.0.
Pressione “Jogar” e pressione E: o drone para por um momento. Depois, pressione “Verificar”.
Experimente você mesmo
extends Node2D
func hit():
modulate = Color(4, 4, 4)
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.3)
Todas as lições de Sensação de jogo
Pratique por conta própria: Playground de Godot