From f70805b38b67d9f839d3a924d9222c81d028ce28 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Heli=20Hyv=C3=A4ttinen?= Date: Tue, 26 Jul 2011 12:43:28 +0300 Subject: [PATCH] Victory screen integrated into the game view/scene Tap screen return from -pause did not work once when testing this with fremantle, could not repeat the bug. Menu worked. Bug did not appear on Harmattan. Conflicts: seascene.cpp seascene.h --- seascene.cpp | 82 ++++++++++++++++++++++++++++++---------------------------- seascene.h | 2 ++ 2 files changed, 44 insertions(+), 40 deletions(-) diff --git a/seascene.cpp b/seascene.cpp index 6dfa748..11e9b99 100644 --- a/seascene.cpp +++ b/seascene.cpp @@ -33,6 +33,7 @@ #include #include #include +#include const QString ghostImageFilename_ = ":/pix/aave.png"; const QString rockImageFilename_ =":/pix/kari.png"; @@ -108,6 +109,8 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses, int octopusSpeed) createMenuItems(); createAboutBoxItems(); + createVictoryItems(); + //empty the list of moving items @@ -354,6 +357,7 @@ void SeaScene::pause(bool paused) if (paused == false) { // qDebug() << "starting to move again"; + emit fullscreenRequested(); emit pauseOff(); screenLitKeeper_.keepScreenLit(true); if (pPausetextItem_) @@ -405,7 +409,20 @@ void SeaScene::handleScreenTapped() } } - //If the game is paused, check if menu item was selected + + //If the game is paused, check if the victory item is being shown + if(pVictoryCongratulationsItem_) + { + if (pVictoryCongratulationsItem_->isVisibleTo(NULL)) //returns visibility to scene + { + pVictoryCongratulationsItem_->hide(); + restartGame(); + pPauseAction_->setChecked(false); // unpause + return; + } + } + + //If the game is paused and no victory or about box, check if menu item was selected QList items = selectedItems(); @@ -594,47 +611,12 @@ void SeaScene::nextLevel() else //Victory! { - QDialog* pVictoryDialog = new QDialog(); - pVictoryDialog->setWindowTitle(tr("You won!")); - - - QPushButton* pPlayAgainButton = new QPushButton(tr("Play again")); -// QPushButton* pQuitButton = new QPushButton(tr("Quit game")); - - QPixmap victoryIcon (":/pix/aavesaari.png"); - QLabel* pVictoryLabel = new QLabel(); - pVictoryLabel->setPixmap(victoryIcon); - - QLabel* pTextLabel = new QLabel(tr("Congratulations!

You have saved all the ghosts.")); - - - QVBoxLayout* pMainLayout = new QVBoxLayout; - - QHBoxLayout* pTopLayout = new QHBoxLayout; - pMainLayout->addLayout(pTopLayout); + pPauseAction_->setChecked(true); //Pause the game while showing the victory dialog - pTopLayout->addWidget(pVictoryLabel); - pTopLayout->addWidget(pTextLabel); + pPausetextItem_->hide(); + pVictoryCongratulationsItem_->show(); - - QHBoxLayout* pButtonLayout = new QHBoxLayout(); - pMainLayout->addLayout(pButtonLayout); - - // pButtonLayout->addWidget(pQuitButton); - pButtonLayout->addWidget(pPlayAgainButton); - - - - pVictoryDialog->setLayout(pMainLayout); - - connect(pPlayAgainButton, SIGNAL(clicked()),pVictoryDialog,SLOT(accept())); - - pVictoryDialog->exec(); - - //Never mind if the user cancels the dialog: restart the game anyway - - restartGame(); } } @@ -652,7 +634,7 @@ void SeaScene::forcePause() pause(true); } -void::SeaScene::softContinue() +void SeaScene::softContinue() { //Continue if not being paused by the user // Reverts forcePause() @@ -661,7 +643,27 @@ void::SeaScene::softContinue() } void SeaScene::createAboutBoxItems() +void SeaScene::createVictoryItems() { + pVictoryCongratulationsItem_ = new QGraphicsTextItem; + pVictoryCongratulationsItem_->setHtml(" Victory!"); + pVictoryCongratulationsItem_->hide(); + pVictoryCongratulationsItem_->setPos(300,50); + pVictoryCongratulationsItem_->setZValue(1000); + addItem(pVictoryCongratulationsItem_); + +// QGraphicsPixmapItem * pImageItem = new QGraphicsPixmapItem(QPixmap(":/pix/aavesaari.png"),pVictoryCongratulationsItem_); +// pImageItem->setPos(-100,150); +// pImageItem->setZValue(1000); +// pImageItem->setScale(2.0); + + + QGraphicsTextItem * pTextItem = new QGraphicsTextItem(pVictoryCongratulationsItem_); + pTextItem->setHtml("

Congratulations!
You have saved all the ghosts." + "

Tap to play again "); + pTextItem->setPos(-50,100); + pTextItem->setZValue(1000); + pAboutBoxItem_ = new QGraphicsTextItem; addItem(pAboutBoxItem_); pAboutBoxItem_->setPos(25,50); diff --git a/seascene.h b/seascene.h index aca355a..a04205e 100644 --- a/seascene.h +++ b/seascene.h @@ -81,6 +81,7 @@ public slots: void softContinue(); void createAboutBoxItems(); + void createVictoryItems(); void setItemPointersNull(); @@ -124,6 +125,7 @@ protected: QGraphicsTextItem * pQuitItem_; QGraphicsTextItem * pAboutBoxItem_; + QGraphicsTextItem * pVictoryCongratulationsItem_; QList levelList_; -- 1.7.9.5