Обновление / рендеринг игровых объектов с использованием Qt - PullRequest
4 голосов
/ 18 марта 2012

Я хотел бы знать, как обновлять и отображать игровые объекты при использовании Qt.Например, в типичной игре у вас будет цикл обработки событий, но у Qt просто есть exec().Как правильно обновлять и отображать игровые объекты, используя Qt?Как сделать, например, получить время между каждым кадром для обновления моих игровых объектов?Я использую отдельный поток для всего этого?

Мой вопрос очень похож на этот поток , за исключением того, что я не пытаюсь избежать стандартных процессов Qt.Изменить: я прошу прощения за неполный вопрос.Я полагаю, что tmpearce уже ответил на мой вопрос, но вот основной пример того, что я пытаюсь сделать в случае, если у кого-то есть такая же проблема:

1 Ответ

7 голосов
/ 18 марта 2012

Qt имеет цикл обработки событий;он запускается QApplication::exec().Я понятия не имею, каковы ваши требования в отношении обновления и рендеринга;но поскольку вам, похоже, нужен цикл событий, как в «типичной игре», я предполагаю, что вы можете взять его оттуда.

В своем приложении создайте QTimer.Подключите сигнал timeout к слоту, который вы хотите вызывать в каждом цикле событий.Вызов QTimer::start(0): это вызовет сигнал timeout каждый раз в цикле событий.

Что касается времени, проверьте QElapsedTimer - Я подозреваю, что это то, что выищу.

...