summaryrefslogtreecommitdiffstats
path: root/pacman-c++/mainwidget.cpp
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2011-04-25 14:39:00 +0200
committermanuel <manuel@mausz.at>2011-04-25 14:39:00 +0200
commit41a31420cf091aeb4e986503387855d41e550106 (patch)
treeffbe0be5f9630a0bab2deb0b5df37c174bf40db1 /pacman-c++/mainwidget.cpp
parentbbd2a69a962d15f74a4afcb7b66462eac9fa5008 (diff)
downloadfoop-41a31420cf091aeb4e986503387855d41e550106.tar.gz
foop-41a31420cf091aeb4e986503387855d41e550106.tar.bz2
foop-41a31420cf091aeb4e986503387855d41e550106.zip
- add intro sound on every round
- add dieing sound - add dieing animation - add die on moving onto colorized block
Diffstat (limited to 'pacman-c++/mainwidget.cpp')
-rw-r--r--pacman-c++/mainwidget.cpp29
1 files changed, 16 insertions, 13 deletions
diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp
index eb032bd..f164219 100644
--- a/pacman-c++/mainwidget.cpp
+++ b/pacman-c++/mainwidget.cpp
@@ -33,13 +33,8 @@ MainWidget::MainWidget(QWidget *parent)
33 m_socket->waitForReadyRead(); 33 m_socket->waitForReadyRead();
34 tick(); 34 tick();
35 35
36 connect(m_socket, SIGNAL(readyRead()), this, SLOT(tick()));
37 qDebug() << "[Connect] mycolor=" << m_scene->color(); 36 qDebug() << "[Connect] mycolor=" << m_scene->color();
38 37 connect(m_socket, SIGNAL(readyRead()), this, SLOT(tick()));
39 //TODO: play intro as soon as there are enough players
40 //connect(AudioPlayer::self(), SIGNAL(finished()), this, SLOT(startGame()));
41 //AudioPlayer::self()->play(AudioPlayer::Intro);
42 startGame();
43} 38}
44 39
45bool MainWidget::connected() 40bool MainWidget::connected()
@@ -146,6 +141,7 @@ void MainWidget::tick()
146 Q_ASSERT(worked); 141 Q_ASSERT(worked);
147 Q_UNUSED(worked); 142 Q_UNUSED(worked);
148 143
144 /* eating order data set inidicates a new round */
149 if (m_updatepacket.eating_order_size() > 0) 145 if (m_updatepacket.eating_order_size() > 0)
150 { 146 {
151 Q_ASSERT(m_scene != NULL); 147 Q_ASSERT(m_scene != NULL);
@@ -156,6 +152,11 @@ void MainWidget::tick()
156 for(int i = 0; i < m_updatepacket.eating_order_size(); ++i) 152 for(int i = 0; i < m_updatepacket.eating_order_size(); ++i)
157 order.append(static_cast<Color::Color>(m_updatepacket.eating_order(i) & Transmission::color_mask)); 153 order.append(static_cast<Color::Color>(m_updatepacket.eating_order(i) & Transmission::color_mask));
158 m_scene->setEatingOrder(order); 154 m_scene->setEatingOrder(order);
155
156 /* stop and restart game */
157 stopGame();
158 connect(AudioManager::self()->audioPlayer(), SIGNAL(finished()), this, SLOT(startGame()));
159 AudioManager::self()->play(Sound::Intro, true);
159 } 160 }
160 161
161 Transmission::map_t map = Util::createUninitialisedMap(); 162 Transmission::map_t map = Util::createUninitialisedMap();
@@ -177,8 +178,6 @@ void MainWidget::tick()
177 178
178void MainWidget::keyPressEvent(QKeyEvent* event) 179void MainWidget::keyPressEvent(QKeyEvent* event)
179{ 180{
180 if (!m_running)
181 return;
182 if (event->isAutoRepeat()) 181 if (event->isAutoRepeat())
183 return; 182 return;
184 183
@@ -194,8 +193,6 @@ void MainWidget::keyPressEvent(QKeyEvent* event)
194 193
195void MainWidget::sendKeyUpdate() 194void MainWidget::sendKeyUpdate()
196{ 195{
197 if (!m_running)
198 return;
199 if (m_currentKey == Transmission::direction_none) 196 if (m_currentKey == Transmission::direction_none)
200 return; 197 return;
201 qDebug() << "[SendKey] key=" << m_currentKey; 198 qDebug() << "[SendKey] key=" << m_currentKey;
@@ -206,10 +203,8 @@ void MainWidget::sendKeyUpdate()
206 203
207void MainWidget::keyReleaseEvent(QKeyEvent* event) 204void MainWidget::keyReleaseEvent(QKeyEvent* event)
208{ 205{
209 if (!m_running)
210 return;
211 if (event->isAutoRepeat()) 206 if (event->isAutoRepeat())
212 return; 207 return;
213 208
214 QWidget::keyReleaseEvent(event); 209 QWidget::keyReleaseEvent(event);
215 m_currentKey = Transmission::none; 210 m_currentKey = Transmission::none;
@@ -218,10 +213,18 @@ void MainWidget::keyReleaseEvent(QKeyEvent* event)
218 213
219void MainWidget::startGame() 214void MainWidget::startGame()
220{ 215{
216 disconnect(AudioManager::self()->audioPlayer(), NULL, this, SLOT(startGame()));
221 m_running = true; 217 m_running = true;
218 sendKeyUpdate();
222 m_ambientPlayer->play(); 219 m_ambientPlayer->play();
223} 220}
224 221
222void MainWidget::stopGame()
223{
224 m_running = false;
225 m_ambientPlayer->pause();
226}
227
225void MainWidget::setAmbientMuted(bool muted) 228void MainWidget::setAmbientMuted(bool muted)
226{ 229{
227 m_ambientPlayer->setMuted(muted); 230 m_ambientPlayer->setMuted(muted);