Advertisement
Zunesha

Como fazer um timer crescente ou decrescente na Godot

Dec 31st, 2023 (edited)
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Como fazer um timer crescente ou decrescente na Godot
  2.  
  3. 1- Esse é um sistema bem simples e direto de como fazer um temporizador ou um cronômetro de forma eficiente. O exemplo em questão faz um cronômetro que mostra as horas, minutos, segundos e mile segundos, o que é ideal para um timer de speedrun.Porém é facilmente adaptado para mostrar menos recursos como: Apenas minutos e segundos.
  4.  
  5. obs - Nesse caso o timer tem 4 Labels para conter as 4 unidades de tempo.
  6.  
  7. 2- Vamos ao Script:
  8.  
  9. extends CanvasLayer
  10.  
  11. @onready var l_horas = $horas
  12. @onready var l_minutos = $minutos
  13. @onready var l_segundos = $segundos
  14. @onready var l_milesegundos = $milesegundos
  15.  
  16. var time:float = 0.0         # Essa variável vai converter o valor em segundos para minutos/horas, ou seja: se definida como 3592,  
  17.                              # isso equivale a 59 minutos e 52 segundos. Exibindo o tempo dessa forma: 00:59:52.000
  18. var hours:int = 0
  19. var minutes:int = 0
  20. var seconds:int = 0
  21. var msec:int = 0
  22.  
  23. var acionar_timer:bool = false
  24.  
  25. func _process(delta):
  26.    
  27.     if acionar_timer:
  28.         time += delta
  29.    
  30.     msec = fmod(time,1) * 100
  31.     seconds = fmod(time,60)
  32.     minutes = fmod(time,3600) / 60
  33.     hours = time / 3600
  34.    
  35.     l_horas.text = "%02d" % hours + ":"
  36.     l_minutos.text = "%02d" % minutes + ":"
  37.     l_segundos.text = "%02d" % seconds + "."
  38.     l_milesegundos.text = "%03d" % msec
  39.  
  40. func _input(event):
  41.     if event.is_action_pressed("ui_espaco"):
  42.         acionar_timer = true
  43.  
  44.     if event.is_action_pressed("ui_time_out"):
  45.         acionar_timer = false
  46.         print(get_timer_formatted())
  47.  
  48.  
  49. func get_timer_formatted():
  50.     return "%02d:%02d:%02d.%03d" % [hours,minutes,seconds,msec]
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement