[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegames/kolf
From: Stefan Majewsky <majewsky () gmx ! net>
Date: 2010-10-31 22:15:05
Message-ID: 20101031221505.18362AC8A6 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1191671 by majewsky:
First use of Tagaro::Scene, Board, and SpriteObjectItem in KolfGame class.
This demonstrates how Tagaro::Board's automatic scaling makes big parts
of the current resize handling code obsolete.
M +23 -32 game.cpp
M +10 -3 game.h
--- trunk/KDE/kdegames/kolf/game.cpp #1191670:1191671
@@ -22,6 +22,9 @@
#include "kcomboboxdialog.h"
#include "rtti.h"
+#include "tagaro/board.h"
+#include "tagaro/spriteobjectitem.h"
+
#include <QApplication>
#include <QGridLayout>
#include <QCheckBox>
@@ -50,8 +53,19 @@
return QString("%1|%2").arg(name).arg(id);
}
-K_GLOBAL_STATIC_WITH_ARGS(KGameRenderer, g_renderer, \
(QLatin1String("pics/default_theme.desktop"))) +class KolfRenderer : public \
KGameRenderer +{
+ public:
+ KolfRenderer()
+ : KGameRenderer(QLatin1String("pics/default_theme.desktop"))
+ {
+ setStrategyEnabled(KGameRenderer::UseDiskCache, false);
+ setStrategyEnabled(KGameRenderer::UseRenderingThreads, false);
+ }
+};
+K_GLOBAL_STATIC(KolfRenderer, g_renderer)
+
KGameRenderer* Kolf::renderer()
{
return g_renderer;
@@ -2581,7 +2595,6 @@
// in easy storage
width = 400;
height = 400;
- grass = QColor("#35760D");
margin = 10;
@@ -2592,23 +2605,19 @@
setContentsMargins(margin, margin, margin, margin);
- course = new QGraphicsScene(this);
- course->setBackgroundBrush(Qt::white);
- course->setSceneRect(0, 0, width, height);
+ course = new Tagaro::Scene(Kolf::renderer(), "grass");
+ course->setMainView(this); //this does this->setScene(course)
+ courseBoard = new Tagaro::Board;
+ courseBoard->setLogicalSize(QSizeF(400, 400));
+ course->addItem(courseBoard);
- QPixmap pic;
- pic = Kolf::renderer()->spritePixmap("grass", QSize(width, height));
- course->setBackgroundBrush(QBrush(pic));
-
if( filename.contains( "intro" ) )
{
- QPixmap introPic;
- introPic = Kolf::renderer()->spritePixmap("intro_foreground", QSize(400, 132));
- banner = new QGraphicsPixmapItem(introPic, 0, course);
- banner->setPos(0.0,32.0);
+ banner = new Tagaro::SpriteObjectItem(Kolf::renderer(), "intro_foreground", \
courseBoard); + banner->setSize(400, 132);
+ banner->setPos(0, 32);
}
- setScene(course);
adjustSize();
for (PlayerList::Iterator it = players->begin(); it != players->end(); ++it)
@@ -3174,24 +3183,6 @@
{
//resizeFactor is the number to multiply default sizes and positions by to get \
their resized value (i.e. if it is 1 then use default size, if it is >1 then \
everything needs to be bigger, and if it is <1 then everything needs to be smaller)
- //sceneRect resize
- course->setSceneRect(0, 0, 400*resizeFactor, 400*resizeFactor);
-
- //background resize
- QPixmap pic = Kolf::renderer()->spritePixmap("grass", QSize(width*resizeFactor, \
height*resizeFactor));
- course->setBackgroundBrush(QBrush(pic));
-
- //foreground resize
- if( filename.contains( "intro" ) )
- {
- QPixmap introPic;
- introPic = Kolf::renderer()->spritePixmap("intro_foreground", \
QSize(400.0*resizeFactor, 132.0*resizeFactor));
- //course->setForegroundBrush(QBrush(introPic));
- delete banner;
- banner = new QGraphicsPixmapItem(introPic, 0, course);
- banner->setPos(0.0*resizeFactor,32.0*resizeFactor);
- }
-
//stroke circle resize
strokeCircle->resize(resizeFactor);
--- trunk/KDE/kdegames/kolf/game.h #1191670:1191671
@@ -26,6 +26,8 @@
#include "ball.h"
#include "statedb.h"
+#include "tagaro/scene.h"
+
#include <KLocale>
#include <KConfigGroup>
@@ -36,6 +38,11 @@
class KolfGame;
class KGameRenderer;
+namespace Tagaro
+{
+ class Board;
+ class SpriteObjectItem;
+}
namespace Phonon
{
class MediaObject;
@@ -989,7 +996,8 @@
QPoint viewportToViewport(const QPoint &p);
private:
- QGraphicsScene *course;
+ Tagaro::Scene *course;
+ Tagaro::Board *courseBoard;
Putter *putter;
PlayerList *players;
PlayerList::Iterator curPlayer;
@@ -1031,7 +1039,6 @@
int height;
int width;
int margin;
- QColor grass;
int advancePeriod;
@@ -1055,7 +1062,7 @@
QGraphicsRectItem *highlighter;
//For intro banner
- QGraphicsPixmapItem *banner;
+ Tagaro::SpriteObjectItem *banner;
#ifdef SOUND
Phonon::MediaObject *m_player;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic