-rw-r--r-- | noncore/games/parashoot/base.cpp | 12 | ||||
-rw-r--r-- | noncore/games/parashoot/base.h | 8 | ||||
-rw-r--r-- | noncore/games/parashoot/cannon.cpp | 24 | ||||
-rw-r--r-- | noncore/games/parashoot/cannon.h | 6 | ||||
-rw-r--r-- | noncore/games/parashoot/helicopter.cpp | 28 | ||||
-rw-r--r-- | noncore/games/parashoot/helicopter.h | 6 | ||||
-rw-r--r-- | noncore/games/parashoot/interface.cpp | 74 | ||||
-rw-r--r-- | noncore/games/parashoot/interface.h | 22 | ||||
-rw-r--r-- | noncore/games/parashoot/man.cpp | 39 |
9 files changed, 148 insertions, 71 deletions
diff --git a/noncore/games/parashoot/base.cpp b/noncore/games/parashoot/base.cpp index c03802f..cdf1dfa 100644 --- a/noncore/games/parashoot/base.cpp +++ b/noncore/games/parashoot/base.cpp | |||
@@ -1,5 +1,5 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
@@ -23,3 +23,3 @@ | |||
23 | 23 | ||
24 | #include <qpe/resource.h> | 24 | #include <qtopia/resource.h> |
25 | 25 | ||
@@ -71 +71,7 @@ int Base::rtti() const | |||
71 | } | 71 | } |
72 | |||
73 | void | ||
74 | Base::reposition(void) | ||
75 | { | ||
76 | move(2, canvas()->height()-50); | ||
77 | } | ||
diff --git a/noncore/games/parashoot/base.h b/noncore/games/parashoot/base.h index ee7f166..a4c69cc 100644 --- a/noncore/games/parashoot/base.h +++ b/noncore/games/parashoot/base.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
@@ -20,3 +20,3 @@ | |||
20 | 20 | ||
21 | #include <qpe/sound.h> | 21 | #include <qtopia/sound.h> |
22 | 22 | ||
@@ -34,2 +34,4 @@ public: | |||
34 | 34 | ||
35 | void reposition(void); | ||
36 | |||
35 | private: | 37 | private: |
diff --git a/noncore/games/parashoot/cannon.cpp b/noncore/games/parashoot/cannon.cpp index 3c0a5fe..5671351 100644 --- a/noncore/games/parashoot/cannon.cpp +++ b/noncore/games/parashoot/cannon.cpp | |||
@@ -1,5 +1,5 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
@@ -20,3 +20,3 @@ | |||
20 | 20 | ||
21 | #include <qpe/resource.h> | 21 | #include <qtopia/resource.h> |
22 | 22 | ||
@@ -40,6 +40,5 @@ shotsfired=0; | |||
40 | setFrame(index); | 40 | setFrame(index); |
41 | move(canvas->width()/2-20, canvas->height()-32); | 41 | |
42 | // co ords for barrel of cannon when upright | 42 | reposition(); |
43 | barrelypos = canvas->height()-32; | 43 | |
44 | barrelxpos = canvas->width()/2; | ||
45 | movedir = NoDir; | 44 | movedir = NoDir; |
@@ -140 +139,12 @@ int Cannon::rtti() const | |||
140 | } | 139 | } |
140 | |||
141 | void Cannon::reposition(void) | ||
142 | { | ||
143 | move(canvas()->width()/2-20, canvas()->height()-32); | ||
144 | // co ords for barrel of cannon when upright | ||
145 | barrelypos = canvas()->height()-32; | ||
146 | barrelxpos = canvas()->width()/2; | ||
147 | |||
148 | setFrame(index); | ||
149 | setCoords(); | ||
150 | } | ||
diff --git a/noncore/games/parashoot/cannon.h b/noncore/games/parashoot/cannon.h index 44d0c65..51b1247 100644 --- a/noncore/games/parashoot/cannon.h +++ b/noncore/games/parashoot/cannon.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
@@ -41,2 +41,4 @@ int shotsFired() { return shotsfired; }; | |||
41 | 41 | ||
42 | void reposition(void); | ||
43 | |||
42 | protected: | 44 | protected: |
diff --git a/noncore/games/parashoot/helicopter.cpp b/noncore/games/parashoot/helicopter.cpp index 0923124..036b21e 100644 --- a/noncore/games/parashoot/helicopter.cpp +++ b/noncore/games/parashoot/helicopter.cpp | |||
@@ -1,5 +1,5 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
@@ -24,3 +24,3 @@ | |||
24 | 24 | ||
25 | #include <qpe/resource.h> | 25 | #include <qtopia/resource.h> |
26 | 26 | ||
@@ -39,3 +39,4 @@ Helicopter::Helicopter(QCanvas* canvas) : | |||
39 | h0.replace(QRegExp("0001"),"%1"); | 39 | h0.replace(QRegExp("0001"),"%1"); |
40 | helicopterarray->readPixmaps(h0,3 ); | 40 | helicopterarray->readPixmaps(h0,4 ); |
41 | |||
41 | setSequence(helicopterarray); | 42 | setSequence(helicopterarray); |
@@ -59,5 +60,14 @@ void Helicopter::advance(int phase) | |||
59 | if (phase == 0) { | 60 | if (phase == 0) { |
60 | setFrame(fr%3); | 61 | if (frame() == 3) { |
61 | fr++; | 62 | delete this; |
62 | checkCollision(); | 63 | return; |
64 | } | ||
65 | |||
66 | if (hits >= 2) { | ||
67 | setFrame(3); | ||
68 | } else { | ||
69 | setFrame(fr%3); | ||
70 | fr++; | ||
71 | checkCollision(); | ||
72 | } | ||
63 | } | 73 | } |
@@ -85,6 +95,2 @@ void Helicopter::done() | |||
85 | hits++; | 95 | hits++; |
86 | if (hits >= 2) { | ||
87 | setAnimated(false); | ||
88 | delete this; | ||
89 | } | ||
90 | } | 96 | } |
diff --git a/noncore/games/parashoot/helicopter.h b/noncore/games/parashoot/helicopter.h index 5cb92de..954c651 100644 --- a/noncore/games/parashoot/helicopter.h +++ b/noncore/games/parashoot/helicopter.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
@@ -20,3 +20,3 @@ | |||
20 | 20 | ||
21 | #include <qpe/sound.h> | 21 | #include <qtopia/sound.h> |
22 | 22 | ||
diff --git a/noncore/games/parashoot/interface.cpp b/noncore/games/parashoot/interface.cpp index a40426d..948b92c 100644 --- a/noncore/games/parashoot/interface.cpp +++ b/noncore/games/parashoot/interface.cpp | |||
@@ -1,5 +1,5 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
@@ -23,4 +23,4 @@ | |||
23 | 23 | ||
24 | #include <qpe/resource.h> | 24 | #include <qtopia/qpeapplication.h> |
25 | #include <qpe/qpeapplication.h> | 25 | #include <qtopia/resource.h> |
26 | 26 | ||
@@ -30,3 +30,3 @@ | |||
30 | #include <qstyle.h> | 30 | #include <qstyle.h> |
31 | #include <qpe/qpetoolbar.h> | 31 | #include <qtoolbar.h> |
32 | #include <qtoolbutton.h> | 32 | #include <qtoolbutton.h> |
@@ -35,3 +35,7 @@ ParaShoot::ParaShoot(QWidget* parent, const char* name, WFlags f) : | |||
35 | QMainWindow(parent,name,f), | 35 | QMainWindow(parent,name,f), |
36 | canvas(232, 258), | 36 | canvas( 232, 258 ), |
37 | cannon(NULL), | ||
38 | base(NULL), | ||
39 | gamestopped( true ), | ||
40 | waitover( false ), | ||
37 | fanfare("level_up"), | 41 | fanfare("level_up"), |
@@ -41,5 +45,5 @@ ParaShoot::ParaShoot(QWidget* parent, const char* name, WFlags f) : | |||
41 | QPEApplication::setInputMethodHint(this, QPEApplication::AlwaysOff ); | 45 | QPEApplication::setInputMethodHint(this, QPEApplication::AlwaysOff ); |
46 | |||
47 | updatespeed = 80; | ||
42 | canvas.setAdvancePeriod(80); | 48 | canvas.setAdvancePeriod(80); |
43 | QPixmap bg = Resource::loadPixmap("parashoot/sky"); | ||
44 | canvas.setBackgroundPixmap(bg); | ||
45 | 49 | ||
@@ -54,5 +58,3 @@ ParaShoot::ParaShoot(QWidget* parent, const char* name, WFlags f) : | |||
54 | setCaption( tr("ParaShoot") ); | 58 | setCaption( tr("ParaShoot") ); |
55 | QPixmap newicon = Resource::loadPixmap("parashoot/manicon"); | 59 | new QToolButton( Resource::loadIconSet("new"), tr("New Game"), 0, |
56 | setIcon(newicon); | ||
57 | new QToolButton(newicon, tr("New Game"), 0, | ||
58 | this, SLOT(newGame()), toolbar, "New Game"); | 60 | this, SLOT(newGame()), toolbar, "New Game"); |
@@ -74,4 +76,2 @@ ParaShoot::ParaShoot(QWidget* parent, const char* name, WFlags f) : | |||
74 | setFocusPolicy(StrongFocus); | 76 | setFocusPolicy(StrongFocus); |
75 | |||
76 | newGame(); | ||
77 | } | 77 | } |
@@ -84,4 +84,30 @@ void ParaShoot::resizeEvent(QResizeEvent *) | |||
84 | canvas.resize( s.width() - fw - 2, s.height() - fw - 2); | 84 | canvas.resize( s.width() - fw - 2, s.height() - fw - 2); |
85 | |||
86 | QImage bgimage = Resource::loadImage("parashoot/sky"); | ||
87 | QPixmap bgpixmap; | ||
88 | |||
89 | bgpixmap.convertFromImage(bgimage.smoothScale(canvas.width(), | ||
90 | canvas.height()), QPixmap::Auto); | ||
91 | canvas.setBackgroundPixmap(bgpixmap); | ||
92 | |||
93 | if (base) { | ||
94 | base->reposition(); | ||
95 | } | ||
96 | |||
97 | if (cannon) { | ||
98 | cannon->reposition(); | ||
99 | } | ||
85 | } | 100 | } |
86 | 101 | ||
102 | void ParaShoot::focusOutEvent (QFocusEvent *) | ||
103 | { | ||
104 | if (!gamestopped) | ||
105 | canvas.setAdvancePeriod(-1); | ||
106 | } | ||
107 | |||
108 | void ParaShoot::focusInEvent (QFocusEvent *) | ||
109 | { | ||
110 | if (!gamestopped) | ||
111 | canvas.setAdvancePeriod(updatespeed); | ||
112 | } | ||
87 | 113 | ||
@@ -152,4 +178,5 @@ void ParaShoot::gameOver() | |||
152 | gameover->setColor(red); | 178 | gameover->setColor(red); |
153 | gameover->setFont( QFont("times", 18, QFont::Bold) ); | 179 | gameover->setFont( QFont("times", 16, QFont::Bold) ); |
154 | gameover->move(canvas.width()/2 -110, canvas.height()/2 -50); | 180 | gameover->move((canvas.width() - gameover->boundingRect().width()) / 2, |
181 | (canvas.height() - gameover->boundingRect().height()) / 2); | ||
155 | gameover->setZ(500); | 182 | gameover->setZ(500); |
@@ -229,12 +256,17 @@ void ParaShoot::keyPressEvent(QKeyEvent* event) | |||
229 | case Key_Space: | 256 | case Key_Space: |
230 | cannon->shoot(); | 257 | if ( cannon ) |
258 | cannon->shoot(); | ||
231 | break; | 259 | break; |
232 | case Key_Left: | 260 | case Key_Left:{ |
233 | cannon->pointCannon(Cannon::Left); | 261 | if (cannon ) |
262 | cannon->pointCannon(Cannon::Left); | ||
234 | lastcannonkey=Key_Left; | 263 | lastcannonkey=Key_Left; |
235 | break; | 264 | break; |
236 | case Key_Right: | 265 | } |
237 | cannon->pointCannon(Cannon::Right); | 266 | case Key_Right:{ |
267 | if ( cannon ) | ||
268 | cannon->pointCannon(Cannon::Right); | ||
238 | lastcannonkey=Key_Right; | 269 | lastcannonkey=Key_Right; |
239 | break; | 270 | break; |
271 | } | ||
240 | default: | 272 | default: |
@@ -247,3 +279,3 @@ void ParaShoot::keyReleaseEvent(QKeyEvent* event) | |||
247 | { | 279 | { |
248 | if ( lastcannonkey == event->key() ) | 280 | if ( cannon && lastcannonkey == event->key() ) |
249 | cannon->pointCannon(Cannon::NoDir); | 281 | cannon->pointCannon(Cannon::NoDir); |
diff --git a/noncore/games/parashoot/interface.h b/noncore/games/parashoot/interface.h index 5abbe0b..dd73f53 100644 --- a/noncore/games/parashoot/interface.h +++ b/noncore/games/parashoot/interface.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
@@ -24,3 +24,3 @@ | |||
24 | 24 | ||
25 | #include <qpe/sound.h> | 25 | #include <qtopia/sound.h> |
26 | 26 | ||
@@ -34,3 +34,3 @@ class Helicopter; | |||
34 | //enum Direction{ | 34 | //enum Direction{ |
35 | // left, right, up, down }; | 35 | // left, right, up, down }; |
36 | 36 | ||
@@ -38,7 +38,8 @@ class ParaShoot : public QMainWindow { | |||
38 | Q_OBJECT | 38 | Q_OBJECT |
39 | 39 | ||
40 | public: | 40 | public: |
41 | static QString appName() { return QString::fromLatin1("parashoot"); } | ||
42 | ParaShoot(QWidget* parent=0, const char* name=0, WFlags f=0); | 41 | ParaShoot(QWidget* parent=0, const char* name=0, WFlags f=0); |
43 | 42 | static QString appName() { | |
43 | return QString::fromLatin1("parashoot"); | ||
44 | } | ||
44 | void clear(); | 45 | void clear(); |
@@ -53,3 +54,5 @@ protected: | |||
53 | virtual void resizeEvent(QResizeEvent *e); | 54 | virtual void resizeEvent(QResizeEvent *e); |
54 | 55 | virtual void focusOutEvent(QFocusEvent *); | |
56 | virtual void focusInEvent(QFocusEvent *); | ||
57 | |||
55 | private slots: | 58 | private slots: |
@@ -66,3 +69,2 @@ private: | |||
66 | Base* base; | 69 | Base* base; |
67 | QCanvasText* gameover; | ||
68 | QLabel* levelscore; | 70 | QLabel* levelscore; |
@@ -79,2 +81,2 @@ private: | |||
79 | int lastcannonkey; | 81 | int lastcannonkey; |
80 | }; | 82 | }; |
diff --git a/noncore/games/parashoot/man.cpp b/noncore/games/parashoot/man.cpp index 8435572..94807c2 100644 --- a/noncore/games/parashoot/man.cpp +++ b/noncore/games/parashoot/man.cpp | |||
@@ -1,5 +1,5 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
@@ -20,3 +20,3 @@ | |||
20 | 20 | ||
21 | #include "codes.h" | 21 | #include "codes.h" |
22 | #include "man.h" | 22 | #include "man.h" |
@@ -24,3 +24,3 @@ | |||
24 | 24 | ||
25 | #include <qpe/resource.h> | 25 | #include <qtopia/resource.h> |
26 | 26 | ||
@@ -32,3 +32,3 @@ Man::Man(QCanvas* canvas) : | |||
32 | QCanvasSprite(0, canvas), | 32 | QCanvasSprite(0, canvas), |
33 | splat("lose") | 33 | splat("lose") // No tr |
34 | { | 34 | { |
@@ -37,3 +37,3 @@ Man::Man(QCanvas* canvas) : | |||
37 | m0.replace(QRegExp("0001"),"%1"); | 37 | m0.replace(QRegExp("0001"),"%1"); |
38 | manarray->readPixmaps(m0, 7); | 38 | manarray->readPixmaps(m0, 7); |
39 | setSequence(manarray); | 39 | setSequence(manarray); |
@@ -47,3 +47,3 @@ Man::Man(QCanvas* canvas, int x, int y) : | |||
47 | QCanvasSprite(0, canvas), | 47 | QCanvasSprite(0, canvas), |
48 | splat("bang") | 48 | splat("bang") // No tr |
49 | { | 49 | { |
@@ -64,3 +64,3 @@ Man::Man(QCanvas* canvas, int x, int y) : | |||
64 | srand(midnight.secsTo(QTime::currentTime()) ); | 64 | srand(midnight.secsTo(QTime::currentTime()) ); |
65 | } | 65 | } |
66 | int yfallspeed = 0; | 66 | int yfallspeed = 0; |
@@ -94,5 +94,12 @@ void Man::advance(int phase) | |||
94 | setVelocity(-2, 0); | 94 | setVelocity(-2, 0); |
95 | } | 95 | } else if (xVelocity() == -2) { |
96 | // | ||
97 | // There's been a resize event while this Man has | ||
98 | // been on the ground. Move the man back to the | ||
99 | // new ground location. This is not neat. | ||
100 | // | ||
101 | move(x(), canvas()->height()-26); | ||
102 | } | ||
96 | } | 103 | } |
97 | } | 104 | } |
98 | 105 | ||
@@ -112,3 +119,3 @@ void Man::setInitialCoords() | |||
112 | void Man::checkCollision() | 119 | void Man::checkCollision() |
113 | { | 120 | { |
114 | if ( (x() < 23) && (y() == canvas()->height()-26)) { | 121 | if ( (x() < 23) && (y() == canvas()->height()-26)) { |
@@ -125,2 +132,12 @@ void Man::checkCollision() | |||
125 | } | 132 | } |
133 | |||
134 | // | ||
135 | // resize events may cause Man objects to appear | ||
136 | // outside the screen. Get rid of them if this | ||
137 | // is the case. | ||
138 | // | ||
139 | if ((x() < 0) || (x() > canvas()->width())) { | ||
140 | delete this; | ||
141 | return; | ||
142 | } | ||
126 | } | 143 | } |