summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/snake/interface.cpp43
1 files changed, 20 insertions, 23 deletions
diff --git a/noncore/games/snake/interface.cpp b/noncore/games/snake/interface.cpp
index c9b4931..c824543 100644
--- a/noncore/games/snake/interface.cpp
+++ b/noncore/games/snake/interface.cpp
@@ -63,8 +63,8 @@ SnakeGame::SnakeGame(QWidget* parent, const char* name, WFlags f) :
63 63
64 setCentralWidget(cv); 64 setCentralWidget(cv);
65 65
66 welcomescreen(); 66 QTimer::singleShot( 16, this, SLOT(welcomescreen()) );
67 gamestopped = true; 67 gamestopped = true;
68 waitover = true; 68 waitover = true;
69} 69}
70 70
@@ -84,14 +84,14 @@ void SnakeGame::welcomescreen()
84{ 84{
85 QCanvasText* title = new QCanvasText(tr("SNAKE!"), &canvas); 85 QCanvasText* title = new QCanvasText(tr("SNAKE!"), &canvas);
86 title->setColor(yellow); 86 title->setColor(yellow);
87 title->setFont( QFont("times", 18, QFont::Bold) ); 87 title->setFont( QFont("times", 18, QFont::Bold) );
88 int w = title->boundingRect().width(); 88 int w = title->boundingRect().width();
89 title->move(canvas.width()/2 -w/2, canvas.height()/2-110); 89 title->move(canvas.width()/2 -w/2, canvas.height()/2-110);
90 title->show(); 90 title->show();
91 QCanvasPixmapArray* titlearray = new QCanvasPixmapArray(Resource::findPixmap("title")); 91 QCanvasPixmapArray* titlearray = new QCanvasPixmapArray(Resource::findPixmap("snake/title"));
92 QCanvasSprite* titlepic = new QCanvasSprite(titlearray, &canvas); 92 QCanvasSprite* titlepic = new QCanvasSprite(titlearray, &canvas);
93 titlepic->move(canvas.width()/2 - 33, canvas.height()/2-85); 93 titlepic->move(canvas.width()/2 - 33, canvas.height()/2-85);
94 titlepic->show(); 94 titlepic->show();
95 QCanvasText* instr = new QCanvasText(tr("Use the arrow keys to guide the\n" 95 QCanvasText* instr = new QCanvasText(tr("Use the arrow keys to guide the\n"
96 "snake to eat the mouse. You must not\n" 96 "snake to eat the mouse. You must not\n"
97 "crash into the walls, edges or its tail."), 97 "crash into the walls, edges or its tail."),
@@ -102,14 +102,14 @@ void SnakeGame::welcomescreen()
102 instr->show(); 102 instr->show();
103 QCanvasText* cont = new QCanvasText(tr("Press Any Key To Start"), &canvas); 103 QCanvasText* cont = new QCanvasText(tr("Press Any Key To Start"), &canvas);
104 w = cont->boundingRect().width(); 104 w = cont->boundingRect().width();
105 cont->move(canvas.width()/2-w/2, canvas.height()/2+80); 105 cont->move(canvas.width()/2-w/2, canvas.height()-20);
106 cont->setColor(yellow); 106 cont->setColor(yellow);
107 cont->show(); 107 cont->show();
108 108
109} 109}
110 110
111void SnakeGame::newGame() 111void SnakeGame::newGame()
112{ 112{
113 clear(); 113 clear();
114 snake = new Snake(&canvas); 114 snake = new Snake(&canvas);
115 connect(snake, SIGNAL(dead()), this, SLOT(gameOver()) ); 115 connect(snake, SIGNAL(dead()), this, SLOT(gameOver()) );
@@ -124,12 +124,9 @@ void SnakeGame::newGame()
124 showScore(0); 124 showScore(0);
125 gamestopped = false; 125 gamestopped = false;
126 waitover = true; 126 waitover = true;
127 int x = canvas.width()/2 - 70;
128 x = x - x % 16;
129 int y = canvas.height()-50; 127 int y = canvas.height()-50;
130 y = y - y % 16; 128 (void)new Obstacle(&canvas, 32);
131 (void)new Obstacle(&canvas, x, 32); 129 (void)new Obstacle(&canvas, y);
132 (void)new Obstacle(&canvas, x, y);
133 createTargets(); 130 createTargets();
134} 131}
135 132
@@ -161,7 +158,7 @@ void SnakeGame::levelUp()
161} 158}
162 159
163void SnakeGame::createTargets() 160void SnakeGame::createTargets()
164{ 161{
165 for (int i = 0; i < targetamount; i++) 162 for (int i = 0; i < targetamount; i++)
166 (void)new Target(&canvas); 163 (void)new Target(&canvas);
167 notargets = targetamount; 164 notargets = targetamount;
@@ -174,7 +171,7 @@ void SnakeGame::clear()
174 QCanvasItemList l = canvas.allItems(); 171 QCanvasItemList l = canvas.allItems();
175 for (QCanvasItemList::Iterator it=l.begin(); it!=l.end(); ++it) { 172 for (QCanvasItemList::Iterator it=l.begin(); it!=l.end(); ++it) {
176 delete *it; 173 delete *it;
177 } 174 }
178} 175}
179 176
180void SnakeGame::gameOver() 177void SnakeGame::gameOver()
@@ -182,8 +179,8 @@ void SnakeGame::gameOver()
182 int score = snake->getScore(); 179 int score = snake->getScore();
183 QString scoreoutput=""; 180 QString scoreoutput="";
184 scoreoutput.setNum(score); 181 scoreoutput.setNum(score);
185 QCanvasText* gameover = new QCanvasText(tr("GAME OVER!\n Your Score: %1").arg( scoreoutput), &canvas); 182 QCanvasText* gameover = new QCanvasText(tr("GAME OVER!\n Your Score: %1").arg( scoreoutput), &canvas);
186 183
187 gameover->setZ(100); 184 gameover->setZ(100);
188 gameover->setColor(yellow); 185 gameover->setColor(yellow);
189 gameover->setFont( QFont("times", 18, QFont::Bold) ); 186 gameover->setFont( QFont("times", 18, QFont::Bold) );
@@ -192,7 +189,7 @@ void SnakeGame::gameOver()
192 gameover->show(); 189 gameover->show();
193 gamestopped = true; 190 gamestopped = true;
194 waitover = false; 191 waitover = false;
195 pauseTimer->start(2500); 192 pauseTimer->start(1500);
196} 193}
197 194
198void SnakeGame::wait() 195void SnakeGame::wait()
@@ -200,7 +197,7 @@ void SnakeGame::wait()
200 waitover = true; 197 waitover = true;
201 pauseTimer->stop(); 198 pauseTimer->stop();
202 QCanvasText* cont = new QCanvasText(tr("Press Any Key to Begin a New Game."), 199 QCanvasText* cont = new QCanvasText(tr("Press Any Key to Begin a New Game."),
203 &canvas); 200 &canvas);
204 cont->setZ(100); 201 cont->setZ(100);
205 cont->setColor(white); 202 cont->setColor(white);
206 int w = cont->boundingRect().width(); 203 int w = cont->boundingRect().width();
@@ -209,14 +206,14 @@ void SnakeGame::wait()
209} 206}
210 207
211void SnakeGame::keyPressEvent(QKeyEvent* event) 208void SnakeGame::keyPressEvent(QKeyEvent* event)
212{ 209{
213 if (gamestopped) { 210 if (gamestopped) {
214 if (waitover) 211 if (waitover)
215 newGame(); 212 newGame();
216 else 213 else
217 return; 214 return;
218 } 215 }
219 else { 216 else {
220 int newkey = event->key(); 217 int newkey = event->key();
221 snake->go(newkey); 218 snake->go(newkey);
222 } 219 }