Menu
CoddyTech

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.0

Um 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.

challenge icon

Desafio

Médio

Congele o jogo por um momento ao acertar.

  1. Depois do flash em hit(), defina Engine.time_scale como 0.05.
  2. Aguarde 0.1 segundo real em um temporizador que ignora a escala de tempo, como mostrado acima.
  3. Defina Engine.time_scale novamente como 1.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