godot-demo-projects/mono/DodgeTheCreepsCS/HUD.cs

47 lines
1.0 KiB
C#
Raw Normal View History

using Godot;
using System;
public class HUD : CanvasLayer
{
[Signal]
public delegate void StartGame();
public void ShowMessage(string text)
{
var messageLabel = GetNode<Label>("MessageLabel");
messageLabel.Text = text;
messageLabel.Show();
GetNode<Timer>("MessageTimer").Start();
}
async public void ShowGameOver()
{
ShowMessage("Game Over");
var messageTimer = GetNode<Timer>("MessageTimer");
await ToSignal(messageTimer, "timeout");
var messageLabel = GetNode<Label>("MessageLabel");
messageLabel.Text = "Dodge the\nCreeps!";
messageLabel.Show();
GetNode<Button>("StartButton").Show();
}
public void UpdateScore(int score)
{
GetNode<Label>("ScoreLabel").Text = score.ToString();
}
public void OnStartButtonPressed()
{
GetNode<Button>("StartButton").Hide();
EmitSignal("StartGame");
}
public void OnMessageTimerTimeout()
{
GetNode<Label>("MessageLabel").Hide();
}
}