1
我想爲我在Qt + OpenGL中開發的遊戲實現暫停按鈕。在Qt中使用QTimer在按鈕上暫停功能按下
我想用QTimer來實現它。 基本上我每100ms更新一次屏幕。所以爲了暫停遊戲,我會按下按鈕停止計時器。當再次按下按鈕,我會啓動定時器再次
這裏是我的pauseOrPlay SLOT:
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();
}
但我沒有得到的功能。我得到暫停屏幕上這個特殊的代碼,並在嘗試一些調整在這裏和那裏,有時我得到的屏幕更新非常快速度這向我指出this但我無法找到治癒我的問題在某種程度上
任何幫助或指針?
PS:在這個問題上沒有什麼關於OpenGL的,但我認爲這些都是誰可能已經處理了類似思人,加入OpenGL的標籤
你說的是正確的,但我有同樣的按鈕暫停和播放功能(只需更改圖標)。那麼你能建議其他的方法來暫停遊戲嗎? – Adorn 2013-03-27 16:49:46
麻煩就在你試圖進行初始化的地方。整體概念是確定的,即使是播放/暫停切換按鈕。儘早建立連接。大多數連接應該在對象的構造函數中設置。這樣確保連接只發生一次,確實很容易。 – cgmb 2013-03-27 17:30:40
你是對的。有效。謝謝 – Adorn 2013-03-27 19:37:13