Ghosts now visible aboard
authorHeli Hyvättinen <heli.hyvattinen@kymp.net>
Wed, 8 Jun 2011 19:24:44 +0000 (22:24 +0300)
committerHeli Hyvättinen <heli.hyvattinen@kymp.net>
Wed, 8 Jun 2011 19:24:44 +0000 (22:24 +0300)
The ship now has different images for 0-10 ghosts aboard. for more than
ten, the image with ten ghosts is used.

14 files changed:
laiva_10aave.png [new file with mode: 0644]
laiva_1aave.png [new file with mode: 0644]
laiva_2aave.png [new file with mode: 0644]
laiva_3aave.png [new file with mode: 0644]
laiva_4aave.png [new file with mode: 0644]
laiva_5aave.png [new file with mode: 0644]
laiva_6aave.png [new file with mode: 0644]
laiva_7aave.png [new file with mode: 0644]
laiva_8aave.png [new file with mode: 0644]
laiva_9aave.png [new file with mode: 0644]
orientationcontrol2pix.qrc
seascene.cpp
ship.cpp
ship.h

diff --git a/laiva_10aave.png b/laiva_10aave.png
new file mode 100644 (file)
index 0000000..616529c
Binary files /dev/null and b/laiva_10aave.png differ
diff --git a/laiva_1aave.png b/laiva_1aave.png
new file mode 100644 (file)
index 0000000..66783c0
Binary files /dev/null and b/laiva_1aave.png differ
diff --git a/laiva_2aave.png b/laiva_2aave.png
new file mode 100644 (file)
index 0000000..d3a5aac
Binary files /dev/null and b/laiva_2aave.png differ
diff --git a/laiva_3aave.png b/laiva_3aave.png
new file mode 100644 (file)
index 0000000..c23c4e1
Binary files /dev/null and b/laiva_3aave.png differ
diff --git a/laiva_4aave.png b/laiva_4aave.png
new file mode 100644 (file)
index 0000000..3cb8421
Binary files /dev/null and b/laiva_4aave.png differ
diff --git a/laiva_5aave.png b/laiva_5aave.png
new file mode 100644 (file)
index 0000000..a5f769d
Binary files /dev/null and b/laiva_5aave.png differ
diff --git a/laiva_6aave.png b/laiva_6aave.png
new file mode 100644 (file)
index 0000000..71839c4
Binary files /dev/null and b/laiva_6aave.png differ
diff --git a/laiva_7aave.png b/laiva_7aave.png
new file mode 100644 (file)
index 0000000..1ac0b3e
Binary files /dev/null and b/laiva_7aave.png differ
diff --git a/laiva_8aave.png b/laiva_8aave.png
new file mode 100644 (file)
index 0000000..e2003cc
Binary files /dev/null and b/laiva_8aave.png differ
diff --git a/laiva_9aave.png b/laiva_9aave.png
new file mode 100644 (file)
index 0000000..2d771f8
Binary files /dev/null and b/laiva_9aave.png differ
index 27a9a3a..8ac3974 100644 (file)
@@ -5,5 +5,15 @@
         <file>kari.png</file>
         <file>aave.png</file>
         <file>laiva.png</file>
+        <file>laiva_1aave.png</file>
+        <file>laiva_2aave.png</file>
+        <file>laiva_3aave.png</file>
+        <file>laiva_4aave.png</file>
+        <file>laiva_5aave.png</file>
+        <file>laiva_6aave.png</file>
+        <file>laiva_7aave.png</file>
+        <file>laiva_8aave.png</file>
+        <file>laiva_9aave.png</file>
+        <file>laiva_10aave.png</file>
     </qresource>
 </RCC>
index 3183161..e4162be 100644 (file)
@@ -101,7 +101,20 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses)
         return;
     }
 
-    Ship * pShip = new Ship (QPixmap(":/pix/laiva.png"));
+    QList<QPixmap> shipImages;
+    shipImages.append(QPixmap(":/pix/laiva.png"));
+    shipImages.append(QPixmap(":/pix/laiva_1aave.png"));
+    shipImages.append(QPixmap(":/pix/laiva_2aave.png"));
+    shipImages.append(QPixmap(":/pix/laiva_3aave.png"));
+    shipImages.append(QPixmap(":/pix/laiva_4aave.png"));
+    shipImages.append(QPixmap(":/pix/laiva_5aave.png"));
+    shipImages.append(QPixmap(":/pix/laiva_6aave.png"));
+    shipImages.append(QPixmap(":/pix/laiva_7aave.png"));
+    shipImages.append(QPixmap(":/pix/laiva_8aave.png"));
+    shipImages.append(QPixmap(":/pix/laiva_9aave.png"));
+    shipImages.append(QPixmap(":/pix/laiva_10aave.png"));
+
+    Ship * pShip = new Ship (shipImages);
     pShip->setData(0,"ship");
     pShip->setPos(*pPosition);
     addItem(pShip);
index 4a516e7..e9541d9 100644 (file)
--- a/ship.cpp
+++ b/ship.cpp
@@ -1,9 +1,10 @@
 #include "ship.h"
 #include <QDebug>
 
-Ship::Ship(QPixmap pixmap, QGraphicsItem *parent) :
-    OrientationControlledGraphicsPixmapObject(pixmap,parent)
+Ship::Ship(QList<QPixmap> pixmapList, QGraphicsItem *parent) :
+    OrientationControlledGraphicsPixmapObject(pixmapList.at(0),parent)
 {
+    shipImages_ = pixmapList;
     ghostsAboard_ = 0;
 
 }
@@ -27,6 +28,7 @@ bool Ship::handleCollisions()
             // drop all ghosts when hitting an obstacle
             emit droppingGhosts(ghostsAboard_);
             ghostsAboard_ = 0;
+            updateShipImage();
 
             return false;
         }
@@ -34,6 +36,7 @@ bool Ship::handleCollisions()
         else if (type == "ghost")
         {
             ghostsAboard_++;
+            updateShipImage();
 
             qDebug() << ghostsAboard_ << " ghosts aboard";
 
@@ -44,3 +47,9 @@ bool Ship::handleCollisions()
 
     }
 }
+
+void Ship::updateShipImage()
+{
+    int index = qBound(0,ghostsAboard_,shipImages_.length()-1);
+    setPixmap(shipImages_.at(index));
+}
diff --git a/ship.h b/ship.h
index 62acfd1..47c4cff 100644 (file)
--- a/ship.h
+++ b/ship.h
@@ -5,15 +5,18 @@
 
 class Ship : public OrientationControlledGraphicsPixmapObject
 {
-    Q_OBJECT
+
+       Q_OBJECT
 public:
-    explicit Ship(QPixmap pixmap = 0, QGraphicsItem *parent = 0);
+    explicit Ship(QList<QPixmap> pixmapList, QGraphicsItem *parent = 0);
 
 signals:
 
     /*! Emitted when a ghost is hit */
     void  pickingGhost(QGraphicsItem* pGhost);
 
+
+
     /*! Emitted when ghosts fall over board */
     void droppingGhosts (int ghosts);
 
@@ -24,8 +27,12 @@ protected:
 protected:
     bool handleCollisions();
 
+    void updateShipImage();
+
     int ghostsAboard_;
 
+    QList<QPixmap> shipImages_;
+
 
 };