30 lines
889 B
GDScript
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"
|