summaryrefslogtreecommitdiffstats
path: root/pacman-c++/actor.cpp
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2011-04-13 04:00:48 +0200
committermanuel <manuel@mausz.at>2011-04-13 04:00:48 +0200
commita117d4bf53cbace2ef97ca3003904c1470643955 (patch)
tree78cc58961249e6d2c126aa0a2e6e928e610a121b /pacman-c++/actor.cpp
parent646c9849bc02c64398d5490b633132c0a3291441 (diff)
downloadfoop-a117d4bf53cbace2ef97ca3003904c1470643955.tar.gz
foop-a117d4bf53cbace2ef97ca3003904c1470643955.tar.bz2
foop-a117d4bf53cbace2ef97ca3003904c1470643955.zip
try to play the sound more gapless. if that won't work for totycro I'll revert the crap. it makes the code really ugly
Diffstat (limited to 'pacman-c++/actor.cpp')
-rw-r--r--pacman-c++/actor.cpp39
1 files changed, 28 insertions, 11 deletions
diff --git a/pacman-c++/actor.cpp b/pacman-c++/actor.cpp
index f56407b..56e8e86 100644
--- a/pacman-c++/actor.cpp
+++ b/pacman-c++/actor.cpp
@@ -10,7 +10,7 @@ static QVariant myBooleanInterpolator(const bool &start, const bool &end, qreal
10 10
11Actor::Actor(Color::Color color, bool local, QGraphicsItem *parent) 11Actor::Actor(Color::Color color, bool local, QGraphicsItem *parent)
12 : GameEntity(color, parent),m_direction(Actor::None), m_local(local), 12 : GameEntity(color, parent),m_direction(Actor::None), m_local(local),
13 m_wakaPlayer(NULL), m_roundPoints(0), m_gamePoints(0) 13 m_wakaPlayer1(NULL), m_wakaPlayer2(NULL), m_roundPoints(0), m_gamePoints(0)
14{ 14{
15 /* DON'T set any pixmap here. we've a pixmap in the animation 15 /* DON'T set any pixmap here. we've a pixmap in the animation
16 * but we need a sprite for the collision detection 16 * but we need a sprite for the collision detection
@@ -57,11 +57,16 @@ Actor::Actor(Color::Color color, bool local, QGraphicsItem *parent)
57 /* setup waka sound */ 57 /* setup waka sound */
58 if (local) 58 if (local)
59 { 59 {
60 m_wakaPlayer = new AudioPlayer(this); 60 m_wakaPlayer1 = new AudioPlayer(this);
61 if (m_wakaPlayer->isWorking()) 61 m_wakaPlayer2 = new AudioPlayer(this);
62 if (m_wakaPlayer1->isWorking() && m_wakaPlayer2->isWorking())
62 { 63 {
63 m_wakaPlayer->setLoop(Sound::WakaWaka); 64 m_wakaPlayer1->setPrefinishMark(100);
64 AudioManager::self()->registerAudioPlayer(m_wakaPlayer); 65 m_wakaPlayer2->setPrefinishMark(100);
66 connect(m_wakaPlayer1, SIGNAL(prefinishMarkReached(qint32)), this, SLOT(startPlayer2()));
67 connect(m_wakaPlayer2, SIGNAL(prefinishMarkReached(qint32)), this, SLOT(startPlayer1()));
68 AudioManager::self()->registerAudioPlayer(m_wakaPlayer1);
69 AudioManager::self()->registerAudioPlayer(m_wakaPlayer2);
65 } 70 }
66 } 71 }
67 72
@@ -232,18 +237,30 @@ void Actor::eatingPacman()
232 237
233void Actor::startEating() 238void Actor::startEating()
234{ 239{
235 if (!m_local || !m_wakaPlayer->isWorking()) 240 if (!m_local || !m_wakaPlayer1->isWorking())
236 return; 241 return;
237 if (m_wakaPlayer->state() != Phonon::PlayingState) 242 if (m_wakaPlayer1->state() != Phonon::PlayingState && m_wakaPlayer2->state() != Phonon::PlayingState)
238 m_wakaPlayer->play(); 243 startPlayer1();
239} 244}
240 245
241void Actor::stopEating() 246void Actor::stopEating()
242{ 247{
243 if (!m_local || !m_wakaPlayer->isWorking()) 248 if (!m_local || !m_wakaPlayer1->isWorking())
244 return; 249 return;
245 if (m_wakaPlayer->state() != Phonon::PausedState) 250 if (m_wakaPlayer1->state() != Phonon::PausedState)
246 m_wakaPlayer->pause(); 251 m_wakaPlayer1->pause();
252 if (m_wakaPlayer2->state() != Phonon::PausedState)
253 m_wakaPlayer2->pause();
254}
255
256void Actor::startPlayer1()
257{
258 m_wakaPlayer1->play(Sound::WakaWaka);
259}
260
261void Actor::startPlayer2()
262{
263 m_wakaPlayer2->play(Sound::WakaWaka);
247} 264}
248 265
249unsigned int Actor::getRoundPoints() 266unsigned int Actor::getRoundPoints()