• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdegames API Reference
  • KDE Home
  • Contact Us
 

granatier

  • sources
  • kde-4.14
  • kdegames
  • granatier
  • src
infosidebar.cpp
Go to the documentation of this file.
1 /*
2  * Copyright 2009 Mathias Kraus <k.hias@gmx.de>
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License as
6  * published by the Free Software Foundation; either version 2 of
7  * the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #include "infosidebar.h"
19 #include "game.h"
20 #include "gamescene.h"
21 #include "player.h"
22 #include "settings.h"
23 
24 #include <QGraphicsView>
25 #include <QGraphicsRectItem>
26 #include <QTimer>
27 #include <KLocale>
28 #include <KStandardDirs>
29 #include <KGameRenderer>
30 #include <KGameRenderedItem>
31 
32 InfoSidebar::InfoSidebar (Game* p_game, GameScene* p_scene) : QObject()
33 {
34  m_game = p_game;
35  m_gameScene = p_scene;
36  m_svgScaleFactor = 1;
37  m_badBonusSpriteKey = "bonus_bad_restrain";
38 
39  QList <Player*> playerList = m_game->getPlayers();
40  int nMaxPlayerNameLength = 0;
41  int nTop = 0;
42  int nLeft = 0;
43  int nWidth = 0;
44  int nHeight = 0;
45 
46  //calculate max player name length and top-left position
47  for(int i = 0; i < playerList.count(); i++)
48  {
49  QGraphicsTextItem playerName (playerList[i]->getPlayerName());
50  playerName.setFont(QFont("Helvetica", Granatier::CellSize * 0.25, QFont::Bold, false));
51  if(nMaxPlayerNameLength < playerName.boundingRect().width())
52  {
53  nMaxPlayerNameLength = playerName.boundingRect().width();
54  }
55  if(i == playerList.count() - 1)
56  {
57  int nAllItemsWidth = 4 * (Granatier::CellSize / 2 + 4);
58  if(nAllItemsWidth > nMaxPlayerNameLength + Granatier::CellSize / 2 + 4)
59  {
60  nWidth = nAllItemsWidth;
61  }
62  else
63  {
64  nWidth = nMaxPlayerNameLength + Granatier::CellSize / 2 + 4;
65  }
66  nLeft = -(nWidth + 20);
67  nHeight = playerName.boundingRect().height() + Granatier::CellSize / 2;
68  nTop = m_gameScene->sceneRect().y() + m_gameScene->height()/2 - playerList.count()/2 * (nHeight + 4);
69  }
70  }
71 
72  //create the labels
73  PlayerInfo* playerInfo;
74  KGameRenderer* renderer;
75  for(int i = 0; i < playerList.count(); i++)
76  {
77  QPen dimmRectPen;
78  dimmRectPen.setWidth(0);
79  dimmRectPen.setColor(QColor(0,0,0,200));
80  QBrush dimmRectBrush(QColor(0,0,0,200));
81 
82  playerInfo = new PlayerInfo;
83  playerInfo->name = 0;
84  playerInfo->icon = 0;
85  playerInfo->bonusShield = 0;
86  playerInfo->bonusShieldDimm = 0;
87  playerInfo->bonusThrow = 0;
88  playerInfo->bonusThrowDimm = 0;
89  playerInfo->bonusKick = 0;
90  playerInfo->bonusKickDimm = 0;
91  playerInfo->badBonus = 0;
92  playerInfo->badBonusDimm = 0;
93 
94  //create the player icons
95  renderer = m_gameScene->renderer(Granatier::Element::PLAYER, playerList[i]);
96  if(renderer)
97  {
98  playerInfo->icon = new KGameRenderedItem(renderer, "player_0");
99  playerInfo->icon->setZValue(1001);
100  playerInfo->icon->setPos(nLeft, nTop + i * (nHeight + 4));
101  m_gameScene->addItem(playerInfo->icon);
102  }
103 
104  //create the player names
105  playerInfo->name = new QGraphicsTextItem(playerList[i]->getPlayerName());
106  playerInfo->name->setFont(QFont("Helvetica", Granatier::CellSize * 0.25, QFont::Bold, false));
107  playerInfo->name->setDefaultTextColor(QColor("#FFFF00"));
108  playerInfo->name->setZValue(1001);
109  playerInfo->name->setPos(nLeft + Granatier::CellSize / 2 + 2, nTop + i * (nHeight+4) - 4);
110  m_gameScene->addItem(playerInfo->name);
111 
112  renderer = m_gameScene->renderer(Granatier::Element::BONUS);
113  if(renderer)
114  {
115  //create the bonus shield icons
116  playerInfo->bonusShield = new KGameRenderedItem(renderer, "bonus_shield");
117  playerInfo->bonusShield->setZValue(1001);
118  playerInfo->bonusShield->setPos(nLeft, nTop + Granatier::CellSize / 2 + 1 + i * (nHeight + 4));
119  m_gameScene->addItem(playerInfo->bonusShield);
120 
121  playerInfo->bonusShieldDimm = new QGraphicsRectItem();
122  playerInfo->bonusShieldDimm->setBrush(dimmRectBrush);
123  playerInfo->bonusShieldDimm->setPen(dimmRectPen);
124  playerInfo->bonusShieldDimm->setZValue(1002);
125  playerInfo->bonusShieldDimm->setPos(playerInfo->bonusShield->pos().x()-0.5, playerInfo->bonusShield->pos().y()-0.5);
126  m_gameScene->addItem(playerInfo->bonusShieldDimm);
127 
128  //create the bonus throw icons
129  playerInfo->bonusThrow = new KGameRenderedItem(renderer, "bonus_throw");
130  playerInfo->bonusThrow->setZValue(1001);
131  playerInfo->bonusThrow->setPos(nLeft + Granatier::CellSize / 2 + 4, nTop + Granatier::CellSize / 2 + 1 + i * (nHeight + 4));
132  m_gameScene->addItem(playerInfo->bonusThrow);
133 
134  playerInfo->bonusThrowDimm = new QGraphicsRectItem();
135  playerInfo->bonusThrowDimm->setBrush(dimmRectBrush);
136  playerInfo->bonusThrowDimm->setPen(dimmRectPen);
137  playerInfo->bonusThrowDimm->setZValue(1002);
138  playerInfo->bonusThrowDimm->setPos(playerInfo->bonusThrow->pos().x()-0.5, playerInfo->bonusThrow->pos().y()-0.5);
139  m_gameScene->addItem(playerInfo->bonusThrowDimm);
140 
141  //create the bonus kick icons
142  playerInfo->bonusKick = new KGameRenderedItem(renderer, "bonus_kick");
143  playerInfo->bonusKick->setZValue(1001);
144  playerInfo->bonusKick->setPos(nLeft + 2 * (Granatier::CellSize / 2 + 4), nTop + Granatier::CellSize / 2 + 1 + i * (nHeight + 4));
145  m_gameScene->addItem(playerInfo->bonusKick);
146 
147  playerInfo->bonusKickDimm = new QGraphicsRectItem();
148  playerInfo->bonusKickDimm->setBrush(dimmRectBrush);
149  playerInfo->bonusKickDimm->setPen(dimmRectPen);
150  playerInfo->bonusKickDimm->setZValue(1002);
151  playerInfo->bonusKickDimm->setPos(playerInfo->bonusKick->pos().x()-0.5, playerInfo->bonusKick->pos().y()-0.5);
152  m_gameScene->addItem(playerInfo->bonusKickDimm);
153 
154  //create the bad bonus icons
155  playerInfo->badBonus = new KGameRenderedItem(renderer, m_badBonusSpriteKey);
156  playerInfo->badBonus->setZValue(1001);
157  playerInfo->badBonus->setPos(nLeft + 3 * (Granatier::CellSize / 2 + 4), nTop + Granatier::CellSize / 2 + 1 + i * (nHeight + 4));
158  m_gameScene->addItem(playerInfo->badBonus);
159 
160  playerInfo->badBonusDimm = new QGraphicsRectItem();
161  playerInfo->badBonusDimm->setBrush(dimmRectBrush);
162  playerInfo->badBonusDimm->setPen(dimmRectPen);
163  playerInfo->badBonusDimm->setZValue(1002);
164  playerInfo->badBonusDimm->setPos(playerInfo->badBonus->pos().x()-0.5, playerInfo->badBonus->pos().y()-0.5);
165  m_gameScene->addItem(playerInfo->badBonusDimm);
166  }
167 
168  m_mapPlayerInfo.insert(playerList[i], playerInfo);
169 
170  //connect player
171  connect(playerList[i], SIGNAL(bonusUpdated(Player*,Granatier::Bonus::Type,int)), this, SLOT(bonusInfoChanged(Player*,Granatier::Bonus::Type,int)));
172  }
173 
174  m_background = new QGraphicsRectItem();
175  m_background->setBrush(QBrush(QColor(0,0,0,175)));
176  m_background->setZValue(1000);
177  m_background->setRect(nLeft - 10 , nTop - 10, nWidth + 16, playerList.count() * (nHeight + 4) + 16);
178  m_gameScene->addItem(m_background);
179 }
180 
181 InfoSidebar::~InfoSidebar()
182 {
183  //Remove the player infosidebar
184  QMap <Player*, PlayerInfo*>::iterator iteratorPlayerInfo = m_mapPlayerInfo.begin();
185  while (iteratorPlayerInfo != m_mapPlayerInfo.end())
186  {
187  if(iteratorPlayerInfo.value())
188  {
189  //remove the icon
190  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->icon))
191  {
192  m_gameScene->removeItem(iteratorPlayerInfo.value()->icon);
193  }
194  delete iteratorPlayerInfo.value()->icon;
195  //remove the name
196  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->name))
197  {
198  m_gameScene->removeItem(iteratorPlayerInfo.value()->name);
199  }
200  delete iteratorPlayerInfo.value()->name;
201  //remove shield bonus
202  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->bonusShield))
203  {
204  m_gameScene->removeItem(iteratorPlayerInfo.value()->bonusShield);
205  }
206  delete iteratorPlayerInfo.value()->bonusShield;
207  //remove shield bonus dimm
208  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->bonusShieldDimm))
209  {
210  m_gameScene->removeItem(iteratorPlayerInfo.value()->bonusShieldDimm);
211  }
212  delete iteratorPlayerInfo.value()->bonusShieldDimm;
213  //remove throw bonus
214  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->bonusThrow))
215  {
216  m_gameScene->removeItem(iteratorPlayerInfo.value()->bonusThrow);
217  }
218  delete iteratorPlayerInfo.value()->bonusThrow;
219  //remove throw bonus dimm
220  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->bonusThrowDimm))
221  {
222  m_gameScene->removeItem(iteratorPlayerInfo.value()->bonusThrowDimm);
223  }
224  delete iteratorPlayerInfo.value()->bonusThrowDimm;
225  //remove kick bonus
226  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->bonusKick))
227  {
228  m_gameScene->removeItem(iteratorPlayerInfo.value()->bonusKick);
229  }
230  delete iteratorPlayerInfo.value()->bonusKick;
231  //remove kick bonus dimm
232  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->bonusKickDimm))
233  {
234  m_gameScene->removeItem(iteratorPlayerInfo.value()->bonusKickDimm);
235  }
236  delete iteratorPlayerInfo.value()->bonusKickDimm;
237  //remove bad bonus
238  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->badBonus))
239  {
240  m_gameScene->removeItem(iteratorPlayerInfo.value()->badBonus);
241  }
242  delete iteratorPlayerInfo.value()->badBonus;
243  //remove bad bonus dimm
244  if(m_gameScene->items().contains(iteratorPlayerInfo.value()->badBonusDimm))
245  {
246  m_gameScene->removeItem(iteratorPlayerInfo.value()->badBonusDimm);
247  }
248  delete iteratorPlayerInfo.value()->badBonusDimm;
249 
250  delete iteratorPlayerInfo.value();
251  }
252  iteratorPlayerInfo = m_mapPlayerInfo.erase(iteratorPlayerInfo);
253  }
254 
255  //remove the background
256  if(m_gameScene->items().contains(m_background))
257  {
258  m_gameScene->removeItem(m_background);
259  }
260  delete m_background;
261 
262  m_gameScene = 0;
263  m_game = 0;
264 }
265 
266 void InfoSidebar::reset()
267 {
268  QList <Player*> playerList = m_game->getPlayers();
269  for(int i = 0; i < playerList.count(); i++)
270  {
271  m_mapPlayerInfo.value(playerList[i])->bonusShieldDimm->setVisible(true);
272  m_mapPlayerInfo.value(playerList[i])->bonusThrowDimm->setVisible(true);
273  m_mapPlayerInfo.value(playerList[i])->bonusKickDimm->setVisible(true);
274  m_mapPlayerInfo.value(playerList[i])->badBonusDimm->setVisible(true);
275  }
276 }
277 
278 QRectF InfoSidebar::rect()
279 {
280  return m_background->rect();
281 }
282 
283 void InfoSidebar::themeChanged()
284 {
285  KGameRenderer* renderer = m_gameScene->renderer(Granatier::Element::BONUS);
286  KGameRenderedItem* tempItem;
287 
288  //update player infosidebar
289  QMap <Player*, PlayerInfo*>::iterator iteratorPlayerInfo = m_mapPlayerInfo.begin();
290  while (iteratorPlayerInfo != m_mapPlayerInfo.end())
291  {
292  tempItem = iteratorPlayerInfo.value()->bonusShield;
293  if(m_gameScene->items().contains(tempItem))
294  {
295  m_gameScene->removeItem(tempItem);
296  }
297  //create the bonus shield
298  iteratorPlayerInfo.value()->bonusShield = new KGameRenderedItem(renderer, "bonus_shield");
299  iteratorPlayerInfo.value()->bonusShield->setZValue(1001);
300  iteratorPlayerInfo.value()->bonusShield->setPos(tempItem->pos());
301  m_gameScene->addItem(iteratorPlayerInfo.value()->bonusShield);
302  delete tempItem;
303 
304  tempItem = iteratorPlayerInfo.value()->bonusThrow;
305  if(m_gameScene->items().contains(tempItem))
306  {
307  m_gameScene->removeItem(tempItem);
308  }
309  //create the bonus throw
310  iteratorPlayerInfo.value()->bonusThrow = new KGameRenderedItem(renderer, "bonus_throw");
311  iteratorPlayerInfo.value()->bonusThrow->setZValue(1001);
312  iteratorPlayerInfo.value()->bonusThrow->setPos(tempItem->pos());
313  m_gameScene->addItem(iteratorPlayerInfo.value()->bonusThrow);
314  delete tempItem;
315 
316  tempItem = iteratorPlayerInfo.value()->bonusKick;
317  if(m_gameScene->items().contains(tempItem))
318  {
319  m_gameScene->removeItem(tempItem);
320  }
321  //create the bonus kick
322  iteratorPlayerInfo.value()->bonusKick = new KGameRenderedItem(renderer, "bonus_kick");
323  iteratorPlayerInfo.value()->bonusKick->setZValue(1001);
324  iteratorPlayerInfo.value()->bonusKick->setPos(tempItem->pos());
325  m_gameScene->addItem(iteratorPlayerInfo.value()->bonusKick);
326  delete tempItem;
327 
328  tempItem = iteratorPlayerInfo.value()->badBonus;
329  if(m_gameScene->items().contains(tempItem))
330  {
331  m_gameScene->removeItem(tempItem);
332  }
333  //create the bad bonus
334  iteratorPlayerInfo.value()->badBonus = new KGameRenderedItem(renderer, m_badBonusSpriteKey);
335  iteratorPlayerInfo.value()->badBonus->setZValue(1001);
336  iteratorPlayerInfo.value()->badBonus->setPos(tempItem->pos());
337  m_gameScene->addItem(iteratorPlayerInfo.value()->badBonus);
338  delete tempItem;
339 
340  iteratorPlayerInfo++;
341  }
342 
343  updateGraphics(m_svgScaleFactor);
344 }
345 
346 void InfoSidebar::bonusInfoChanged(Player* player, Granatier::Bonus::Type bonusType, int percentageElapsed)
347 {
348  if(m_gameScene->views().isEmpty())
349  {
350  return;
351  }
352 
353  switch((int)bonusType)
354  {
355  case Granatier::Bonus::SHIELD:
356  m_mapPlayerInfo.value(player)->bonusShieldDimm->setVisible(percentageElapsed);
357  break;
358  case Granatier::Bonus::THROW:
359  m_mapPlayerInfo.value(player)->bonusThrowDimm->setVisible(percentageElapsed);
360  break;
361  case Granatier::Bonus::KICK:
362  m_mapPlayerInfo.value(player)->bonusKickDimm->setVisible(percentageElapsed);
363  break;
364  case Granatier::Bonus::HYPERACTIVE:
365  case Granatier::Bonus::SLOW:
366  case Granatier::Bonus::MIRROR:
367  case Granatier::Bonus::SCATTY:
368  case Granatier::Bonus::RESTRAIN:
369  if(percentageElapsed == 0)
370  {
371  //set the new bad bonus icon
372  KGameRenderer* renderer = m_gameScene->renderer(Granatier::Element::BONUS);
373  if(renderer)
374  {
375  switch((int)bonusType)
376  {
377  case Granatier::Bonus::HYPERACTIVE:
378  m_badBonusSpriteKey = "bonus_bad_hyperactive";
379  break;
380  case Granatier::Bonus::SLOW:
381  m_badBonusSpriteKey = "bonus_bad_slow";
382  break;
383  case Granatier::Bonus::MIRROR:
384  m_badBonusSpriteKey = "bonus_bad_mirror";
385  break;
386  case Granatier::Bonus::SCATTY:
387  m_badBonusSpriteKey = "bonus_bad_scatty";
388  break;
389  case Granatier::Bonus::RESTRAIN:
390  m_badBonusSpriteKey = "bonus_bad_restrain";
391  break;
392  }
393 
394  if(renderer->spriteExists(m_badBonusSpriteKey))
395  {
396  m_mapPlayerInfo.value(player)->badBonus->setSpriteKey(m_badBonusSpriteKey);
397  }
398 
399  //hide the dimm overlay
400  m_mapPlayerInfo.value(player)->badBonusDimm->setVisible(false);
401 
402  //calculate graphics size
403  QSize renderSize;
404  QPoint topLeft(0, 0);
405  topLeft = m_gameScene->views().first()->mapFromScene(topLeft);
406  QRectF rect;
407 
408  QPoint bottomRight(Granatier::CellSize * 0.5, Granatier::CellSize * 0.5);
409  bottomRight = m_gameScene->views().first()->mapFromScene(bottomRight);
410 
411  renderSize.setHeight(bottomRight.y() - topLeft.y());
412  renderSize.setWidth(bottomRight.x() - topLeft.x());
413 
414  m_mapPlayerInfo.value(player)->badBonus->setRenderSize(renderSize);
415  m_mapPlayerInfo.value(player)->badBonus->setScale(m_svgScaleFactor);
416 
417  rect = m_mapPlayerInfo.value(player)->badBonusDimm->rect();
418  rect.setWidth(renderSize.width() * m_svgScaleFactor);
419  rect.setHeight(renderSize.height() * m_svgScaleFactor);
420  m_mapPlayerInfo.value(player)->badBonusDimm->setRect(rect);
421  }
422  }
423  else
424  {
425  m_mapPlayerInfo.value(player)->badBonusDimm->setVisible(true);
426  QRectF rect = m_mapPlayerInfo.value(player)->badBonusDimm->rect();
427  rect.setHeight(rect.width() * percentageElapsed/100.0);
428  m_mapPlayerInfo.value(player)->badBonusDimm->setRect(rect);
429  }
430  break;
431  }
432 }
433 
434 void InfoSidebar::updateGraphics(qreal svgScaleFactor)
435 {
436  if(m_gameScene->views().isEmpty())
437  {
438  return;
439  }
440 
441  QSize renderSize;
442  QPoint topLeft(0, 0);
443  topLeft = m_gameScene->views().first()->mapFromScene(topLeft);
444  QPoint bottomRight;
445  QRectF rect;
446 
447  m_svgScaleFactor = svgScaleFactor;
448 
449  //update player infosidebar
450  QMap <Player*, PlayerInfo*>::iterator iteratorPlayerInfo = m_mapPlayerInfo.begin();
451  while (iteratorPlayerInfo != m_mapPlayerInfo.end())
452  {
453  bottomRight.setX(Granatier::CellSize * 0.45);
454  bottomRight.setY(Granatier::CellSize * 0.45);
455  bottomRight = m_gameScene->views().first()->mapFromScene(bottomRight);
456  renderSize.setHeight(bottomRight.y() - topLeft.y());
457  renderSize.setWidth(bottomRight.x() - topLeft.x());
458 
459  iteratorPlayerInfo.value()->icon->setRenderSize(renderSize);
460  iteratorPlayerInfo.value()->icon->setScale(m_svgScaleFactor);
461 
462  bottomRight.setX(Granatier::CellSize * 0.5);
463  bottomRight.setY(Granatier::CellSize * 0.5);
464  bottomRight = m_gameScene->views().first()->mapFromScene(bottomRight);
465  renderSize.setHeight(bottomRight.y() - topLeft.y());
466  renderSize.setWidth(bottomRight.x() - topLeft.x());
467 
468  iteratorPlayerInfo.value()->bonusShield->setRenderSize(renderSize);
469  iteratorPlayerInfo.value()->bonusShield->setScale(m_svgScaleFactor);
470  rect = iteratorPlayerInfo.value()->bonusShieldDimm->rect();
471  rect.setWidth(renderSize.width() * m_svgScaleFactor);
472  rect.setHeight(renderSize.height() * m_svgScaleFactor);
473  iteratorPlayerInfo.value()->bonusShieldDimm->setRect(rect);
474 
475  iteratorPlayerInfo.value()->bonusThrow->setRenderSize(renderSize);
476  iteratorPlayerInfo.value()->bonusThrow->setScale(m_svgScaleFactor);
477  rect = iteratorPlayerInfo.value()->bonusThrowDimm->rect();
478  rect.setWidth(renderSize.width() * m_svgScaleFactor);
479  rect.setHeight(renderSize.height() * m_svgScaleFactor);
480  iteratorPlayerInfo.value()->bonusThrowDimm->setRect(rect);
481 
482  iteratorPlayerInfo.value()->bonusKick->setRenderSize(renderSize);
483  iteratorPlayerInfo.value()->bonusKick->setScale(m_svgScaleFactor);
484  rect = iteratorPlayerInfo.value()->bonusKickDimm->rect();
485  rect.setWidth(renderSize.width() * m_svgScaleFactor);
486  rect.setHeight(renderSize.height() * m_svgScaleFactor);
487  iteratorPlayerInfo.value()->bonusKickDimm->setRect(rect);
488 
489  iteratorPlayerInfo.value()->badBonus->setRenderSize(renderSize);
490  iteratorPlayerInfo.value()->badBonus->setScale(m_svgScaleFactor);
491  rect = iteratorPlayerInfo.value()->badBonusDimm->rect();
492  rect.setWidth(renderSize.width() * m_svgScaleFactor);
493  rect.setHeight(renderSize.height() * m_svgScaleFactor);
494  iteratorPlayerInfo.value()->badBonusDimm->setRect(rect);
495 
496  iteratorPlayerInfo++;
497  }
498 }
QGraphicsTextItem::setFont
void setFont(const QFont &font)
PlayerInfo::icon
KGameRenderedItem * icon
Definition: infosidebar.h:39
QSize::setHeight
void setHeight(int height)
Granatier::Info::PlayerInfo
Definition: granatierglobals.h:141
QMap::erase
iterator erase(iterator pos)
QSize::width
int width() const
Granatier::Bonus::KICK
Definition: granatierglobals.h:111
InfoSidebar::reset
void reset()
Resets the player states.
Definition: infosidebar.cpp:266
Granatier::Bonus::SHIELD
Definition: granatierglobals.h:109
infosidebar.h
PlayerInfo::badBonusDimm
QGraphicsRectItem * badBonusDimm
Definition: infosidebar.h:47
QGraphicsScene::items
QList< QGraphicsItem * > items() const
Granatier::Element::PLAYER
Definition: granatierglobals.h:93
QFont
QGraphicsTextItem::boundingRect
virtual QRectF boundingRect() const
QMap
PlayerInfo::bonusKick
KGameRenderedItem * bonusKick
Definition: infosidebar.h:44
QGraphicsScene::sceneRect
sceneRect
InfoSidebar::InfoSidebar
InfoSidebar(Game *p_game, GameScene *p_scene)
Creates a new InfoSidebar instance.
Definition: infosidebar.cpp:32
QBrush
Granatier::Element::BONUS
Definition: granatierglobals.h:95
PlayerInfo
Definition: infosidebar.h:36
QPoint
game.h
QGraphicsScene::height
qreal height() const
PlayerInfo::bonusThrowDimm
QGraphicsRectItem * bonusThrowDimm
Definition: infosidebar.h:43
QPoint::x
int x() const
QPoint::y
int y() const
player.h
QGraphicsRectItem::setRect
void setRect(const QRectF &rectangle)
QRectF::setHeight
void setHeight(qreal height)
Granatier::Bonus::SCATTY
Definition: granatierglobals.h:115
PlayerInfo::bonusThrow
KGameRenderedItem * bonusThrow
Definition: infosidebar.h:42
Granatier::Bonus::HYPERACTIVE
Definition: granatierglobals.h:113
QList::count
int count(const T &value) const
Granatier::CellSize
const qreal CellSize
The Cell size.
Definition: granatierglobals.h:31
PlayerInfo::badBonus
KGameRenderedItem * badBonus
Definition: infosidebar.h:46
Game::getPlayers
QList< Player * > getPlayers() const
Definition: game.cpp:291
QGraphicsScene::removeItem
void removeItem(QGraphicsItem *item)
QObject
QGraphicsItem::setPos
void setPos(const QPointF &pos)
QGraphicsScene::views
QList< QGraphicsView * > views() const
QSize::setWidth
void setWidth(int width)
Game
This class manages the game main loop : it regularly checks the key press events, computes the charac...
Definition: game.h:43
QGraphicsTextItem
InfoSidebar::~InfoSidebar
virtual ~InfoSidebar()
Deletes the InfoSidebar instance.
Definition: infosidebar.cpp:181
QList< Player * >
QMap::end
iterator end()
QColor
QPen::setColor
void setColor(const QColor &color)
gamescene.h
QMap::begin
iterator begin()
Granatier::Bonus::THROW
Definition: granatierglobals.h:110
PlayerInfo::name
QGraphicsTextItem * name
Definition: infosidebar.h:38
QSize
Granatier::Bonus::MIRROR
Definition: granatierglobals.h:114
Granatier::Bonus::RESTRAIN
Definition: granatierglobals.h:116
InfoSidebar::updateGraphics
virtual void updateGraphics(qreal svgScaleFactor)
Updates the graphics after a resize.
Definition: infosidebar.cpp:434
QRectF::width
qreal width() const
settings.h
QPen::setWidth
void setWidth(int width)
QAbstractGraphicsShapeItem::setPen
void setPen(const QPen &pen)
QGraphicsRectItem
QRectF
QRectF::setWidth
void setWidth(qreal width)
GameScene::renderer
KGameRenderer * renderer(Granatier::Element::Type type, Player *player=NULL)
Returns the renderer for the requestet Element Type.
Definition: gamescene.cpp:638
InfoSidebar::rect
QRectF rect()
Returns the background rect of the infoSidebar.
Definition: infosidebar.cpp:278
GameScene
This class contains all the Game elements to be drawn on the screen by the GameView instance...
Definition: gamescene.h:50
QSize::height
int height() const
KGameRenderedItem
PlayerInfo::bonusShieldDimm
QGraphicsRectItem * bonusShieldDimm
Definition: infosidebar.h:41
QPoint::setX
void setX(int x)
QPoint::setY
void setY(int y)
PlayerInfo::bonusShield
KGameRenderedItem * bonusShield
Definition: infosidebar.h:40
QPen
QRectF::height
qreal height() const
QMap::insert
iterator insert(const Key &key, const T &value)
QAbstractGraphicsShapeItem::setBrush
void setBrush(const QBrush &brush)
QGraphicsTextItem::setDefaultTextColor
void setDefaultTextColor(const QColor &col)
InfoSidebar::themeChanged
void themeChanged()
Handles theme changes.
Definition: infosidebar.cpp:283
QGraphicsScene::addItem
void addItem(QGraphicsItem *item)
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QGraphicsItem::setZValue
void setZValue(qreal z)
Player
This class represents the main character of the game.
Definition: player.h:33
PlayerInfo::bonusKickDimm
QGraphicsRectItem * bonusKickDimm
Definition: infosidebar.h:45
Granatier::Bonus::Type
Type
Definition: granatierglobals.h:103
Granatier::Bonus::SLOW
Definition: granatierglobals.h:112
QGraphicsRectItem::rect
QRectF rect() const
QMap::value
const T value(const Key &key) const
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:18:10 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

granatier

Skip menu "granatier"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdegames API Reference

Skip menu "kdegames API Reference"
  • granatier
  • kapman
  • kblackbox
  • kgoldrunner
  • kigo
  • kmahjongg
  • KShisen
  • ksquares
  • libkdegames
  •   highscore
  •   libkdegamesprivate
  •     kgame
  • libkmahjongg
  • palapeli
  •   libpala

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal