diff options
| author | manuel <manuel@mausz.at> | 2011-04-25 14:39:00 +0200 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2011-04-25 14:39:00 +0200 |
| commit | 41a31420cf091aeb4e986503387855d41e550106 (patch) | |
| tree | ffbe0be5f9630a0bab2deb0b5df37c174bf40db1 /pacman-c++/mainwidget.cpp | |
| parent | bbd2a69a962d15f74a4afcb7b66462eac9fa5008 (diff) | |
| download | foop-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.cpp | 29 |
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 | ||
| 45 | bool MainWidget::connected() | 40 | bool 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 | ||
| 178 | void MainWidget::keyPressEvent(QKeyEvent* event) | 179 | void 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 | ||
| 195 | void MainWidget::sendKeyUpdate() | 194 | void 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 | ||
| 207 | void MainWidget::keyReleaseEvent(QKeyEvent* event) | 204 | void 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 | ||
| 219 | void MainWidget::startGame() | 214 | void 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 | ||
| 222 | void MainWidget::stopGame() | ||
| 223 | { | ||
| 224 | m_running = false; | ||
| 225 | m_ambientPlayer->pause(); | ||
| 226 | } | ||
| 227 | |||
| 225 | void MainWidget::setAmbientMuted(bool muted) | 228 | void MainWidget::setAmbientMuted(bool muted) |
| 226 | { | 229 | { |
| 227 | m_ambientPlayer->setMuted(muted); | 230 | m_ambientPlayer->setMuted(muted); |
