Files

30 lines
889 B
GDScript

extends CanvasLayer
## HUD: показывает счёт, жизни и время. Отслеживает состояние игры.
var _score_label: Label
var _lives_label: Label
var _time_label: Label
func _ready() -> void:
_score_label = get_node("Top/ScoreLabel")
_lives_label = get_node("Top/LivesLabel")
_time_label = get_node("Top/TimeLabel")
GameManager.state_changed.connect(_on_state_changed)
_update_labels()
func _process(_delta: float) -> void:
if GameManager.state == "playing":
_update_labels()
func _update_labels() -> void:
_score_label.text = "SCORE %06d" % GameManager.score
_lives_label.text = "LIVES x%d" % GameManager.lives
_time_label.text = GameManager._fmt_time(GameManager.time_elapsed)
func _on_state_changed(new_state: String) -> void:
match new_state:
"won":
_time_label.text = "YOU WIN!"
"lost":
_time_label.text = "GAME OVER"