[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegames/lskat
From: Martin Heni <martin () heni-online ! de>
Date: 2007-10-04 3:30:57
Message-ID: 1191468657.354816.12089.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 720936 by heni:
+ Cleanup
+ Debug: Display frame rates using -debug=1
M +1 -2 README
M +1 -1 lskat.lsm
M +42 -34 src/display_intro.cpp
M +2 -0 src/display_intro.h
M +46 -0 src/gameview.cpp
M +17 -0 src/gameview.h
M +1 -0 src/mainwindow.cpp
--- trunk/KDE/kdegames/lskat/README #720935:720936
@@ -1,4 +1,3 @@
GENERAL NOTE:
-INSTALLATION:
-
+http://games.kde.org/
--- trunk/KDE/kdegames/lskat/lskat.lsm #720935:720936
@@ -1,6 +1,6 @@
Begin3
Title: Lskat
-Version: 1.1
+Version: 1.40
Entered-date:
Description: A card game for the KDE desktop
Keywords: skat,game,computer,network,kde
--- trunk/KDE/kdegames/lskat/src/display_intro.cpp #720935:720936
@@ -42,6 +42,8 @@
int advancePeriod, QGraphicsView* parent)
: Themable("display_intro",theme), AbstractDisplay(deck, theScene, \
theme, advancePeriod, parent) {
+ mTextShown = false;
+
// Choose a background color
scene()->setBackgroundBrush(QColor(0,0,128));
@@ -76,40 +78,6 @@
mState = Putting;
mTimer->start(50);
- QString s1 = i18nc("Title of the game - line 1", "Lieutenant Skat");
- QString s2 = i18nc("Title of the game - line 2", "for");
- QString s3 = i18nc("Title of the game - line 3", "K D E");
-
- // Text sprite title foreground
- TextSprite* text1a = new TextSprite(s1, "name-front", mTheme, scene());
- mSprites.append(text1a);
- text1a->show();
-
- // Text sprite title background
- TextSprite* text1b = new TextSprite(s1, "name-back", mTheme, scene());
- mSprites.append(text1b);
- text1b->show();
-
- // Text sprite title foreground
- TextSprite* text2a = new TextSprite(s2, "for-front", mTheme, scene());
- mSprites.append(text2a);
- text2a->show();
-
- // Text sprite title background
- TextSprite* text2b = new TextSprite(s2, "for-back", mTheme, scene());
- mSprites.append(text2b);
- text2b->show();
-
- // Text sprite title foreground
- TextSprite* text3a = new TextSprite(s3, "kde-front", mTheme, scene());
- mSprites.append(text3a);
- text3a->show();
-
- // Text sprite title background
- TextSprite* text3b = new TextSprite(s3, "kde-back", mTheme, scene());
- mSprites.append(text3b);
- text3b->show();
-
// Stop all card sprites
for (int i=0; i<mCards.size(); i++)
{
@@ -135,6 +103,46 @@
double time_clear_out = config.readEntry("time-clear-out", 1.0);
double aspectRatio = thememanager()->aspectRatio();
+
+ // Display the intro text delayed
+ if (mAnimCnt == 2 && mState == Putting && !mTextShown)
+ {
+ mTextShown = true;
+ QString s1 = i18nc("Title of the game - line 1", "Lieutenant Skat");
+ QString s2 = i18nc("Title of the game - line 2", "for");
+ QString s3 = i18nc("Title of the game - line 3", "K D E");
+
+ // Text sprite title foreground
+ TextSprite* text1a = new TextSprite(s1, "name-front", mTheme, scene());
+ mSprites.append(text1a);
+ text1a->show();
+
+ // Text sprite title background
+ TextSprite* text1b = new TextSprite(s1, "name-back", mTheme, scene());
+ mSprites.append(text1b);
+ text1b->show();
+
+ // Text sprite title foreground
+ TextSprite* text2a = new TextSprite(s2, "for-front", mTheme, scene());
+ mSprites.append(text2a);
+ text2a->show();
+
+ // Text sprite title background
+ TextSprite* text2b = new TextSprite(s2, "for-back", mTheme, scene());
+ mSprites.append(text2b);
+ text2b->show();
+
+ // Text sprite title foreground
+ TextSprite* text3a = new TextSprite(s3, "kde-front", mTheme, scene());
+ mSprites.append(text3a);
+ text3a->show();
+
+ // Text sprite title background
+ TextSprite* text3b = new TextSprite(s3, "kde-back", mTheme, scene());
+ mSprites.append(text3b);
+ text3b->show();
+ }
+
// Display a card
if (mAnimCnt < no && mState == Putting)
{
--- trunk/KDE/kdegames/lskat/src/display_intro.h #720935:720936
@@ -101,6 +101,8 @@
int mAnimCnt;
// Animation state
AnimState mState;
+ // Text shown?
+ bool mTextShown;
};
#endif
--- trunk/KDE/kdegames/lskat/src/gameview.cpp #720935:720936
@@ -61,7 +61,15 @@
QGraphicsView::DontSavePainterState |
QGraphicsView::DontAdjustForAntialiasing );
+ // Debug
+ mDisplayUpdateTime = 0;
+ mFrameSprite = new QGraphicsTextItem(0, scene);
+ mFrameSprite->setPos(QPointF(0.0, 0.0));
+ mFrameSprite->setZValue(1000.0);
+ if (global_debug > 0) mFrameSprite->show();
+ else mFrameSprite->hide();
+
// Update/advance in [ms]
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(updateAndAdvance()));
@@ -82,10 +90,29 @@
mTimeStart.start();
}
+GameView::~GameView()
+{
+ delete mFrameSprite;
+}
+
// Advance and update canvas
void GameView::updateAndAdvance()
{
+ static int elapsed = -1;
+ static QTime timer;
+ if (elapsed < 0 )
+ {
+ timer.start();
+ elapsed = 0;
+ }
+ else
+ {
+ elapsed = timer.elapsed();
+ timer.start();
+ mDisplayUpdateTime = elapsed;
+ }
+
scene()->advance();
//NOTE regarding QGV porting
//QGV will handle dirty rects for us
@@ -176,5 +203,24 @@
emit signalLeftMousePress(point.toPoint());
}
+void GameView::drawItems(QPainter* painter, int numItems, QGraphicsItem* items[], \
const QStyleOptionGraphicsItem options[]) +{
+ QTime time;
+ time.start();
+ QGraphicsView::drawItems(painter, numItems, items, options);
+ // Time display
+ int elapsed = time.elapsed();
+ mDrawTimes.append(elapsed);
+ if (mDrawTimes.size() > 50) mDrawTimes.removeFirst();
+ double avg = 0.0;
+ for (int i=0; i<mDrawTimes.size(); i++) avg += mDrawTimes[i];
+ avg /= mDrawTimes.size();
+
+
+ if (global_debug > 0)
+ mFrameSprite->setPlainText(QString("Draw: %1 ms Average %2 ms Update: %3 \
ms").arg(elapsed).arg(int(avg)).arg(mDisplayUpdateTime)); +
+}
+
#include "gameview.moc"
--- trunk/KDE/kdegames/lskat/src/gameview.h #720935:720936
@@ -33,6 +33,7 @@
#include <QList>
#include <QTime>
#include <QResizeEvent>
+#include <QGraphicsTextItem>
// Forward declaration
class ThemeManager;
@@ -55,6 +56,10 @@
*/
GameView(const QSize &size, int advancePeriod, QGraphicsScene* scene, \
ThemeManager* theme, QWidget* parent = 0);
+ /** Destructor.
+ */
+ ~GameView();
+
protected:
/** React to mouse clicks.
* @param event The mouse event
@@ -89,7 +94,11 @@
*/
void paintEvent(QPaintEvent* event);
+ /** Overwritten Qt function.
+ */
+ virtual void drawItems(QPainter *painter, int numItems, QGraphicsItem *items[], \
const QStyleOptionGraphicsItem options[]);
+
private:
// Theme manager
ThemeManager* mTheme;
@@ -97,6 +106,14 @@
QList<int> mThemeQueue;
// Theme queue delay time [ms]
QTime mTimeStart;
+ // Debug frame rate sprite
+ QGraphicsTextItem* mFrameSprite;
+ // Time between updates
+ int mDisplayUpdateTime;
+ // Average update times
+ QList<int> mDrawTimes;
+
+
};
#endif // LSKAT_GAMEVIEW_H
--- trunk/KDE/kdegames/lskat/src/mainwindow.cpp #720935:720936
@@ -484,6 +484,7 @@
// Choose card deck
action = actionCollection()->addAction("select_carddeck");
action->setText(i18n("Select &Card Deck..."));
+ action->setShortcuts( KShortcut( Qt::Key_F10 ) );
connect(action, SIGNAL(triggered(bool)), this, SLOT(menuCardDeck()));
action->setToolTip(i18n("Configure card decks..."));
action->setWhatsThis(i18n("Choose how the cards should look."));
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic