[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/games/granatier/src
From:       Mathias Kraus <k.hias () gmx ! de>
Date:       2009-10-10 18:08:30
Message-ID: 1255198110.158009.13908.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1033667 by mkraus:

improve explosion a little bit

 M  +29 -8     bombexplosionitem.cpp  
 M  +3 -1      bombexplosionitem.h  
 M  +4 -4      gamescene.cpp  


--- trunk/playground/games/granatier/src/bombexplosionitem.cpp #1033666:1033667
@@ -22,30 +22,25 @@
 #include <QTimer>
 #include <KDebug>
 
-BombExplosionItem::BombExplosionItem(Bomb* p_model, Direction direction, int i) : \
QGraphicsSvgItem() +BombExplosionItem::BombExplosionItem(Bomb* p_model, Direction \
direction, int bombPower) : QGraphicsSvgItem()  {
-    QTransform transform;
     m_direction = direction;
+    m_bombPower = bombPower;
     switch(m_direction)
     {
         case NORTH:
             setElementId("bomb_exploded_north");
-            transform.translate(0, 20);
             break;
         case EAST:
             setElementId("bomb_exploded_east");
-            transform.translate(-20, 0);
             break;
         case SOUTH:
             setElementId("bomb_exploded_south");
-            transform.translate(0, -20);
             break;
         case WEST:
             setElementId("bomb_exploded_west");
-            transform.translate(20, 0);
             break;
     }
-    setTransform(transform);
     
     setVisible(true);
 }
@@ -61,7 +56,7 @@
     QRectF rect = boundingRect();
 
     // Calculation of the shape
-    QRectF shapeRect = QRectF( rect.x()+rect.width()/4, rect.y()+rect.height()/4, \
rect.width()/2, rect.height()/2 ); +    QRectF shapeRect = QRectF(rect.x(), rect.y(), \
rect.width(), rect.height());  path.addEllipse(shapeRect);
     return path;
 }
@@ -73,4 +68,30 @@
     qreal y = p_y - boundingRect().height() / 2;
     // Updates the view coordinates
     setPos(x, y);
+    
+    QTransform transform;
+    switch(m_direction)
+    {
+        case NORTH:
+            transform.translate(boundingRect().width() / 2.0, 0);
+            transform.scale(1 + 0.1 * m_bombPower, 1);
+            transform.translate(-boundingRect().width() / 2.0, 20);
+            break;
+        case EAST:
+            transform.translate(0, boundingRect().height() / 2.0);
+            transform.scale(1, 1 + 0.1 * m_bombPower);
+            transform.translate(-20, -boundingRect().height() / 2.0);
+            break;
+        case SOUTH:
+            transform.translate(boundingRect().width() / 2.0, 0);
+            transform.scale(1 + 0.1 * m_bombPower, 1);
+            transform.translate(-boundingRect().width() / 2.0, -20);
+            break;
+        case WEST:
+            transform.translate(0, boundingRect().height() / 2.0);
+            transform.scale(1, 1 + 0.1 * m_bombPower);
+            transform.translate(20, -boundingRect().height() / 2.0);
+            break;
+    }
+    setTransform(transform);
 }
--- trunk/playground/games/granatier/src/bombexplosionitem.h #1033666:1033667
@@ -44,6 +44,8 @@
 protected:
 
    Direction m_direction;
+   
+   int m_bombPower;
 
 public:
 
@@ -51,7 +53,7 @@
      * Creates a new BombExplosionItem instance.
      * @param p_model the Bomb model
      */
-    BombExplosionItem(Bomb* p_model, Direction direction, int i);
+    BombExplosionItem(Bomb* p_model, Direction direction, int bombPower);
 
     /**
      * Deletes the BombExplosionItem instance.
--- trunk/playground/games/granatier/src/gamescene.cpp #1033666:1033667
@@ -691,7 +691,7 @@
                         }
                     }
                 }
-                bombExplosionItem = new BombExplosionItem (bomb, \
BombExplosionItem::NORTH, i); +                bombExplosionItem = new \
                BombExplosionItem (bomb, BombExplosionItem::NORTH, nBombPower - i);
                 bombExplosionItem->setSharedRenderer(m_rendererBombItems);
                 bombExplosionItem->update(bomb->getX(), bomb->getY() - \
(i+1)*Cell::SIZE);  bombExplosionItem->setZValue(300 + nBombPower+3 - i);
@@ -740,7 +740,7 @@
                         }
                     }
                 }
-                bombExplosionItem = new BombExplosionItem (bomb, \
BombExplosionItem::EAST, i); +                bombExplosionItem = new \
                BombExplosionItem (bomb, BombExplosionItem::EAST, nBombPower - i);
                 bombExplosionItem->setSharedRenderer(m_rendererBombItems);
                 bombExplosionItem->update(bomb->getX() + (i+1)*Cell::SIZE, \
bomb->getY());  bombExplosionItem->setZValue(300 + nBombPower+3 - i);
@@ -789,7 +789,7 @@
                         }
                     }
                 }
-                bombExplosionItem = new BombExplosionItem (bomb, \
BombExplosionItem::SOUTH, i); +                bombExplosionItem = new \
                BombExplosionItem (bomb, BombExplosionItem::SOUTH, nBombPower - i);
                 bombExplosionItem->setSharedRenderer(m_rendererBombItems);
                 bombExplosionItem->update(bomb->getX(), bomb->getY() + \
(i+1)*Cell::SIZE);  bombExplosionItem->setZValue(300 + nBombPower+3 - i);
@@ -838,7 +838,7 @@
                         }
                     }
                 }
-                bombExplosionItem = new BombExplosionItem (bomb, \
BombExplosionItem::WEST, i); +                bombExplosionItem = new \
                BombExplosionItem (bomb, BombExplosionItem::WEST, nBombPower - i);
                 bombExplosionItem->setSharedRenderer(m_rendererBombItems);
                 bombExplosionItem->update(bomb->getX() - (i+1)*Cell::SIZE, \
bomb->getY());  bombExplosionItem->setZValue(300 + nBombPower+3 - i);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic