Проблема с реализацией 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 статический класс, который может быть лучше с точки зрения производительности, если вы запускаете игру асинхронно.

Другие вопросы по тегам