Проблема с реализацией 30 секундного таймера обратного отсчета
В настоящее время я борюсь с тем, что считаю довольно простой проблемой. Я работаю над игрой в понг с использованием C#. Я пытаюсь реализовать 30-секундный таймер обратного отсчета, который вернет игрока в главное меню, когда время истечет.
Вот метод, который обрабатывает запуск новой игры. Я считаю, что это было бы лучшим местом для установки таймера.
public void StartNewGame()
{
scene = new GameScene(this);
//Start timer
//If timer <= 0
{
load main menu
}
}
Я абсолютно в порядке, когда дело доходит до загрузки различных сцен, но я не могу на всю жизнь понять, как использовать таймеры.
Если у вас есть какие-либо дополнительные вопросы, пожалуйста, не стесняйтесь спрашивать и, как всегда, любая помощь приветствуется! Благодарю.
1 ответ
Вы должны использовать потоки для этого.
В одном потоке у вас будет запущена ваша игра, содержащая некоторую переменную, определяющую, должна ли игра все еще работать.
С другой стороны, вы просто будете спать столько, сколько захотите. C# предлагает всевозможные модные таймеры, если вы ищете библиотеку. По окончании сна или по окончании вашего класса Timer вы устанавливаете флажок в своей ветке игры, что должно остановить игру.
Вы можете запустить свою ветку игры следующим образом:
Thread thread = new Thread();
thread.Start(() => { //start your game });
Вы также можете использовать Task
статический класс, который может быть лучше с точки зрения производительности, если вы запускаете игру асинхронно.