Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Como fazer um timer crescente ou decrescente na Godot
- 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.
- obs - Nesse caso o timer tem 4 Labels para conter as 4 unidades de tempo.
- 2- Vamos ao Script:
- extends CanvasLayer
- @onready var l_horas = $horas
- @onready var l_minutos = $minutos
- @onready var l_segundos = $segundos
- @onready var l_milesegundos = $milesegundos
- var time:float = 0.0 # Essa variável vai converter o valor em segundos para minutos/horas, ou seja: se definida como 3592,
- # isso equivale a 59 minutos e 52 segundos. Exibindo o tempo dessa forma: 00:59:52.000
- var hours:int = 0
- var minutes:int = 0
- var seconds:int = 0
- var msec:int = 0
- var acionar_timer:bool = false
- func _process(delta):
- if acionar_timer:
- time += delta
- msec = fmod(time,1) * 100
- seconds = fmod(time,60)
- minutes = fmod(time,3600) / 60
- hours = time / 3600
- l_horas.text = "%02d" % hours + ":"
- l_minutos.text = "%02d" % minutes + ":"
- l_segundos.text = "%02d" % seconds + "."
- l_milesegundos.text = "%03d" % msec
- func _input(event):
- if event.is_action_pressed("ui_espaco"):
- acionar_timer = true
- if event.is_action_pressed("ui_time_out"):
- acionar_timer = false
- print(get_timer_formatted())
- func get_timer_formatted():
- return "%02d:%02d:%02d.%03d" % [hours,minutes,seconds,msec]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement