From f1a2d179062dfaf53f805395407a2c666eedf36e Mon Sep 17 00:00:00 2001 From: manuel Date: Wed, 6 Apr 2011 17:25:11 +0200 Subject: make pictures color index based --- pacman-c++/actor.cpp | 2 +- pacman-c++/block.cpp | 5 ++-- pacman-c++/constants.h | 1 + pacman-c++/main.cpp | 60 --------------------------------------------- pacman-c++/mainwidget.cpp | 50 ++++++++++++++++++++----------------- pacman-c++/pacman.qrc | 4 +-- pacman-c++/pacman_old.pro | 15 ------------ pacman-c++/pics/actor3.png | Bin 0 -> 703 bytes pacman-c++/pics/actor4.png | Bin 703 -> 706 bytes pacman-c++/pics/actor8.png | Bin 706 -> 0 bytes pacman-c++/pics/block3.png | Bin 0 -> 452 bytes pacman-c++/pics/block4.png | Bin 452 -> 471 bytes pacman-c++/pics/block8.png | Bin 471 -> 0 bytes 13 files changed, 34 insertions(+), 103 deletions(-) delete mode 100644 pacman-c++/main.cpp delete mode 100644 pacman-c++/pacman_old.pro create mode 100644 pacman-c++/pics/actor3.png delete mode 100644 pacman-c++/pics/actor8.png create mode 100644 pacman-c++/pics/block3.png delete mode 100644 pacman-c++/pics/block8.png diff --git a/pacman-c++/actor.cpp b/pacman-c++/actor.cpp index 9d35d47..cde20cd 100644 --- a/pacman-c++/actor.cpp +++ b/pacman-c++/actor.cpp @@ -14,7 +14,7 @@ static QVariant myBooleanInterpolator(const bool &start, const bool &end, qreal Actor::Actor(Color::Color color, QGraphicsItem *parent) : PixmapItem(parent), m_color(color), m_direction(Actor::None) { - m_pix = ":/" + QString("actor%1").arg(m_color); + m_pix = ":/" + QString("actor%1").arg((m_color >> 1) + 1); // DON'T set any pixmap here. we've a pixmap in the animation //setPixmap(m_pix); // higher player "over" lower player diff --git a/pacman-c++/block.cpp b/pacman-c++/block.cpp index 7cb77cc..c168c00 100644 --- a/pacman-c++/block.cpp +++ b/pacman-c++/block.cpp @@ -9,12 +9,13 @@ Block::Block(Color::Color color, unsigned int neighbours, QGraphicsItem *parent) { if (m_pixmaps.find(color) == m_pixmaps.end()) { - QString pixmapName = ":/" + QString("block%1").arg(color); + unsigned int colid = (color == Color::none) ? 0 : (color >> 1) + 1; + QString pixmapName = ":/" + QString("block%1").arg(colid); m_pixmaps[color] = QPixmap(pixmapName); } setPixmap(m_pixmaps.find(color).value()); setNeighbours(neighbours); - qDebug() << "loading block w color: " << color; + //qDebug() << "loading block w color: " << color; } void Block::setNeighbours(unsigned int neighbours) diff --git a/pacman-c++/constants.h b/pacman-c++/constants.h index e009d40..019ac14 100644 --- a/pacman-c++/constants.h +++ b/pacman-c++/constants.h @@ -21,6 +21,7 @@ namespace Color red = (1 << 0), blue = (1 << 1), green = (1 << 2), + max = (1 << 2), }; } diff --git a/pacman-c++/main.cpp b/pacman-c++/main.cpp deleted file mode 100644 index 8c9232a..0000000 --- a/pacman-c++/main.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "actor.h" -#include "block.h" - -#include -#include -#include -#include -#include - -int main(int argc, char **argv) -{ - QApplication app(argc, argv); - app.setApplicationName("pacman"); - - QGraphicsScene scene(0, 0, 500, 500); - scene.setBackgroundBrush(Qt::black); - - Actor *actor1 = new Actor(red); - scene.addItem(actor1); - actor1->setPos(100, 100); - - Actor *actor2 = new Actor(blue); - scene.addItem(actor2); - actor2->setPos(120, 100); - - Actor *actor3 = new Actor(green); - scene.addItem(actor3); - actor3->setPos(140, 100); - - /* - Block *block1 = new Block(Actor::Player1); - scene.addItem(block1); - block1->setPos(200, 200); - */ - - for (unsigned int i=0; i<20; ++i) { - Block *b = new Block(red); - scene.addItem(b); - b->setPos( 100 + i*16, 200); - } - - QGraphicsView *window = new QGraphicsView(&scene); - window->setFrameStyle(0); - window->setAlignment(Qt::AlignLeft | Qt::AlignTop); - window->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - window->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - - QMainWindow mainWin; - mainWin.setCentralWidget(window); - mainWin.resize(500, 500); - mainWin.show(); - - Phonon::MediaObject *music = Phonon::createPlayer(Phonon::MusicCategory, - Phonon::MediaSource("/home/manuel/uni/foop/pacman-c++/sound/eating_cherry.ogg")); - music->play(); - - qsrand(QTime(0,0,0).secsTo(QTime::currentTime())); - - return app.exec(); -} diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp index ad11bf2..819088c 100644 --- a/pacman-c++/mainwidget.cpp +++ b/pacman-c++/mainwidget.cpp @@ -172,25 +172,23 @@ Transmission::map_t createDummyMap() map[x + 3][y + 2] |= Color::none | Transmission::block; x += 5; - /* - map[4][3] |= Color::green ^ Transmission::block; - - map[5][3] |= Color::none ^ Transmission::block; - map[6][3] |= Color::none ^ Transmission::block; - map[7][3] |= Color::red ^ Transmission::block; - - map[7][5] |= Transmission::bonuspoint; - - map[5][5] |= Color::blue; - map[5][5] |= Transmission::pacman; - map[5][5] |= Transmission::direction_left; + map[15][16] |= Color::red | Transmission::block; + map[15][17] |= Color::blue | Transmission::block; + map[15][18] |= Color::green | Transmission::block; + map[15][19] |= Transmission::bonuspoint; - map[7][5] |= Transmission::bonuspoint;*/ - - map[15][15] |= Color::blue; + map[15][15] |= Color::red; map[15][15] |= Transmission::pacman; map[15][15] |= Transmission::direction_left; + map[16][15] |= Color::blue; + map[16][15] |= Transmission::pacman; + map[16][15] |= Transmission::direction_left; + + map[17][15] |= Color::green; + map[17][15] |= Transmission::pacman; + map[17][15] |= Transmission::direction_left; + return map; } @@ -250,11 +248,15 @@ void MainWidget::createGui() void MainWidget::updateScore() { QMapIterator i(m_actors); - while (i.hasNext()) { + while (i.hasNext()) + { i.next(); - int id = i.key() - 1; - if (id == 4) { - id = 3; + int id = (i.key() >> 1); + if (id > (Color::max >> 1)) + { + /* player #4 isn't supported in score */ + Q_ASSERT(false); + continue; } QLabel *turnPointsLbl = dynamic_cast(m_playerScoreLayouts.at(id)->itemAtPosition(0,1)->widget()); @@ -274,10 +276,10 @@ void MainWidget::updateMap(const Transmission::map_t& map) const Transmission::field_t &cur = map[x][y]; if (cur == 0) continue; - qDebug() << "not 0 at x=" << x << ", y=" << y << ", val=" << cur; + //qDebug() << "not 0 at x=" << x << ", y=" << y << ", val=" << cur; Color::Color color = static_cast(cur & Transmission::color_mask); - qDebug() << "col=" << color; + //qDebug() << "col=" << color; PixmapItem* item = NULL; if (cur & Transmission::block) @@ -303,7 +305,7 @@ void MainWidget::updateMap(const Transmission::map_t& map) { Actor *actor = m_actors.value(color, 0); if (actor == 0) { // 0 entspricht NULL ;) - qDebug() << "new actor of col" << color; + //qDebug() << "new actor of col" << color; actor = new Actor(color); m_actors[color] = actor; m_scene->addItem(actor); @@ -342,13 +344,15 @@ void MainWidget::updateMap(const Transmission::map_t& map) item->setPos(mapPositionToCoord(x, y)); PixmapItem* oldItem = visualMap[x][y]; visualMap[x][y] = item; - if (oldItem != NULL) { + if (oldItem != NULL) + { m_scene->removeItem(item); delete oldItem; } } } } + updateScore(); } diff --git a/pacman-c++/pacman.qrc b/pacman-c++/pacman.qrc index e3aab92..6de5cc0 100644 --- a/pacman-c++/pacman.qrc +++ b/pacman-c++/pacman.qrc @@ -2,14 +2,14 @@ pics/actor1.png pics/actor2.png + pics/actor3.png pics/actor4.png - pics/actor8.png pics/block0.png pics/block1.png pics/block2.png + pics/block3.png pics/block4.png pics/bonuspoints.png pics/points.png - pics/block8.png diff --git a/pacman-c++/pacman_old.pro b/pacman-c++/pacman_old.pro deleted file mode 100644 index c44e2c6..0000000 --- a/pacman-c++/pacman_old.pro +++ /dev/null @@ -1,15 +0,0 @@ -QT += phonon -SOURCES += pixmapitem.cpp \ - actor.cpp \ - animationmanager.cpp \ - block.cpp \ - main.cpp -HEADERS += pixmapitem.h \ - actor.h \ - animationmanager.h \ - block.h \ - constants.h -RESOURCES += pacman.qrc - -OBJECTS_DIR = .obj -MOC_DIR = .moc diff --git a/pacman-c++/pics/actor3.png b/pacman-c++/pics/actor3.png new file mode 100644 index 0000000..99e025c Binary files /dev/null and b/pacman-c++/pics/actor3.png differ diff --git a/pacman-c++/pics/actor4.png b/pacman-c++/pics/actor4.png index 99e025c..9947f9b 100644 Binary files a/pacman-c++/pics/actor4.png and b/pacman-c++/pics/actor4.png differ diff --git a/pacman-c++/pics/actor8.png b/pacman-c++/pics/actor8.png deleted file mode 100644 index 9947f9b..0000000 Binary files a/pacman-c++/pics/actor8.png and /dev/null differ diff --git a/pacman-c++/pics/block3.png b/pacman-c++/pics/block3.png new file mode 100644 index 0000000..6662de4 Binary files /dev/null and b/pacman-c++/pics/block3.png differ diff --git a/pacman-c++/pics/block4.png b/pacman-c++/pics/block4.png index 6662de4..00fbd74 100644 Binary files a/pacman-c++/pics/block4.png and b/pacman-c++/pics/block4.png differ diff --git a/pacman-c++/pics/block8.png b/pacman-c++/pics/block8.png deleted file mode 100644 index 00fbd74..0000000 Binary files a/pacman-c++/pics/block8.png and /dev/null differ -- cgit v1.2.3