Qt + OpenGL で開発中のゲームに一時停止ボタンを実装しようとしています。
QTimerを使って実装したい。基本的には100ミリ秒ごとに画面を更新しています。ゲームを一時停止するために、ボタンを押すとタイマーを停止します。ボタンをもう一度押すと、タイマーが再び開始されます
ここに私のpauseOrPlayスロットがあります:
void Window::pauseOrPlay()
{
GLWidget::modifyTimer = TRUE;
GLWidget::isPaused = !GLWidget::isPaused;
GLWidget timerUpdater;
timerUpdater.timerFunc();
}
ここに私の timerFunc() があります
GLvoid GLWidget::timerFunc()
{
static QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
if( GLWidget::isPaused)
timer->start(100);
else
timer->stop();
}
しかし、私は機能を得ていません。この特定のコードで画面が一時停止し、あちこちでいくつかの調整を試みると、画面が非常に速く更新されることがあり、これが原因であることがわかりましたが、どうにかして問題の解決策を見つけることができませんでした
ヘルプやポインタはありますか?
PS:この質問ではOpenGLについては何もありませんが、OpenGLタグを追加して、同様の考えを扱った可能性のある人々だと思います