[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