From 41a31420cf091aeb4e986503387855d41e550106 Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 25 Apr 2011 14:39:00 +0200 Subject: - add intro sound on every round - add dieing sound - add dieing animation - add die on moving onto colorized block --- pacman-c++/mainwidget.cpp | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'pacman-c++/mainwidget.cpp') 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) m_socket->waitForReadyRead(); tick(); - connect(m_socket, SIGNAL(readyRead()), this, SLOT(tick())); qDebug() << "[Connect] mycolor=" << m_scene->color(); - - //TODO: play intro as soon as there are enough players - //connect(AudioPlayer::self(), SIGNAL(finished()), this, SLOT(startGame())); - //AudioPlayer::self()->play(AudioPlayer::Intro); - startGame(); + connect(m_socket, SIGNAL(readyRead()), this, SLOT(tick())); } bool MainWidget::connected() @@ -146,6 +141,7 @@ void MainWidget::tick() Q_ASSERT(worked); Q_UNUSED(worked); + /* eating order data set inidicates a new round */ if (m_updatepacket.eating_order_size() > 0) { Q_ASSERT(m_scene != NULL); @@ -156,6 +152,11 @@ void MainWidget::tick() for(int i = 0; i < m_updatepacket.eating_order_size(); ++i) order.append(static_cast(m_updatepacket.eating_order(i) & Transmission::color_mask)); m_scene->setEatingOrder(order); + + /* stop and restart game */ + stopGame(); + connect(AudioManager::self()->audioPlayer(), SIGNAL(finished()), this, SLOT(startGame())); + AudioManager::self()->play(Sound::Intro, true); } Transmission::map_t map = Util::createUninitialisedMap(); @@ -177,8 +178,6 @@ void MainWidget::tick() void MainWidget::keyPressEvent(QKeyEvent* event) { - if (!m_running) - return; if (event->isAutoRepeat()) return; @@ -194,8 +193,6 @@ void MainWidget::keyPressEvent(QKeyEvent* event) void MainWidget::sendKeyUpdate() { - if (!m_running) - return; if (m_currentKey == Transmission::direction_none) return; qDebug() << "[SendKey] key=" << m_currentKey; @@ -206,10 +203,8 @@ void MainWidget::sendKeyUpdate() void MainWidget::keyReleaseEvent(QKeyEvent* event) { - if (!m_running) - return; if (event->isAutoRepeat()) - return; + return; QWidget::keyReleaseEvent(event); m_currentKey = Transmission::none; @@ -218,10 +213,18 @@ void MainWidget::keyReleaseEvent(QKeyEvent* event) void MainWidget::startGame() { + disconnect(AudioManager::self()->audioPlayer(), NULL, this, SLOT(startGame())); m_running = true; + sendKeyUpdate(); m_ambientPlayer->play(); } +void MainWidget::stopGame() +{ + m_running = false; + m_ambientPlayer->pause(); +} + void MainWidget::setAmbientMuted(bool muted) { m_ambientPlayer->setMuted(muted); -- cgit v1.2.3