From 7b6d7bf80f942b862b224227891bf586f4a65720 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Heli=20Hyv=C3=A4ttinen?= Date: Mon, 25 Jul 2011 20:26:59 +0300 Subject: [PATCH] Victory screen integrated into the game view/scene Tap screen return from -pause did not work once, could not repeat the bug. Menu worked. --- seascene.cpp | 85 +++++++++++++++++++++++++++++++--------------------------- seascene.h | 3 +++ 2 files changed, 48 insertions(+), 40 deletions(-) diff --git a/seascene.cpp b/seascene.cpp index d714baf..b7f9211 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"; @@ -70,6 +71,7 @@ SeaScene::SeaScene(QObject *parent) : currentLevel_ = 0; + connect(this,SIGNAL(allGhostsPicked()),this,SLOT(nextLevel())); @@ -100,6 +102,9 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses, int octopusSpeed) createMenuItems(); + createVictoryItems(); + + //empty the list of moving items movingItems_.clear(); @@ -386,7 +391,19 @@ void SeaScene::handleScreenTapped() return; } - //If the game is paused, chacl 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, check if menu item was selected QList items = selectedItems(); @@ -586,47 +603,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(); } } @@ -644,10 +626,33 @@ void SeaScene::forcePause() pause(true); } -void::SeaScene::softContinue() +void SeaScene::softContinue() { //Continue if not being paused by the user // Reverts forcePause() pause(pPauseAction_->isChecked()); } + +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); + +} diff --git a/seascene.h b/seascene.h index 4fbbd3d..6540ddb 100644 --- a/seascene.h +++ b/seascene.h @@ -82,6 +82,8 @@ public slots: void softContinue(); + void createVictoryItems(); + protected: @@ -121,6 +123,7 @@ protected: QGraphicsTextItem * pAboutItem_; QGraphicsTextItem * pQuitItem_; QGraphicsTextItem * pMinimizeItem_; + QGraphicsTextItem * pVictoryCongratulationsItem_; QList levelList_; -- 1.7.9.5