[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