Advertisement
Zunesha

Como fazer uma barra de vida com efeito simples e bonito na Godot

Dec 30th, 2023 (edited)
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Como fazer uma barra de vida com efeito simples e bonito na Godot
  2.  
  3. 1- Para esse efeito eu preciso de 2 ProgressBar (1 vermelho com o background vazio e 1 branco com background e esse fica por baixo do vermelho).Vou adicionar também um timer,setar o tempo dele em 0.5 e marcar a opção OneShot.
  4.  
  5. OBS - funciona de forma simples: Toda vez que eu diminuir o valor da ProgressBar VERMELHA eu também diminui o valor da ProgressBar BRANCA, porém com um pequeno atraso.
  6.  
  7. 2- Segue o Script que controla as 2 ProgressBar
  8.  
  9. extends CanvasLayer
  10.  
  11. @onready var progress_bar = $ProgressBar
  12. @onready var progress_bar_2 = $ProgressBar2
  13. @onready var timer = $Timer
  14.  
  15. var dano = 5
  16.  
  17. var value:float = 100    # ISSO TEM QUE SER IGUAL AO MAX_VALUE DA PROGRESSBAR
  18. var value2:float = 100   # ISSO TEM QUE SER IGUAL AO MAX_VALUE DA PROGRESSBAR
  19.  
  20. func _input(event):
  21.     if event.is_action_pressed("ui_espaco"):
  22.    
  23.         value = progress_bar.value - dano
  24.         timer.start()
  25.  
  26. func _physics_process(delta): #Isso apenas é para fazer a transição do valor não ser algo tão brusca.
  27.    
  28.     progress_bar.value = lerp(progress_bar.value, value, 0.1)
  29.    
  30.     progress_bar_2.value = lerp(progress_bar_2.value, value2, 0.1)
  31.    
  32.     if(progress_bar.value - value <= 0.5):
  33.         progress_bar.value = value
  34.    
  35.     if(progress_bar_2.value - value2 <= 0.5):
  36.         progress_bar_2.value = value2
  37.    
  38. #   print(value)
  39. #   print(progress_bar.value)
  40.  
  41. func _on_timer_timeout(): # sinal timeout do timer
  42.     value2 = value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement