From b35be096423e89746d441cbf2333800f853c92fd Mon Sep 17 00:00:00 2001 From: totycro Date: Mon, 4 Apr 2011 22:55:41 +0200 Subject: Support actor in map --- pacman-c++/mainwidget.cpp | 56 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 18 deletions(-) (limited to 'pacman-c++/mainwidget.cpp') diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp index 72d9c8a..8dd1875 100644 --- a/pacman-c++/mainwidget.cpp +++ b/pacman-c++/mainwidget.cpp @@ -12,10 +12,10 @@ MainWidget::MainWidget() { QLabel *lbl = new QLabel("da kommt da spielstand hin", this); layout->addWidget(lbl); - scene = new QGraphicsScene(0, 0, 500, 500, this); - scene->setBackgroundBrush(Qt::black); + m_scene = new QGraphicsScene(0, 0, 500, 500, this); + m_scene->setBackgroundBrush(Qt::black); - QGraphicsView *window = new QGraphicsView(scene, this); + QGraphicsView *window = new QGraphicsView(m_scene, this); window->setFrameStyle(0); window->setAlignment(Qt::AlignLeft | Qt::AlignTop); window->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); @@ -54,6 +54,9 @@ transmission::map_t createDummyMap() { map[7][5] |= transmission::bonuspoint; + map[5][5] |= blue; + map[5][5] |= transmission::pacman; + return map; } void MainWidget::loadDummyMap() @@ -76,27 +79,44 @@ void MainWidget::loadDummyMap() item = new Block(color); } else if (cur & transmission::bonuspoint) { item = new BonusPoint(); + } else if (cur & transmission::pacman) { + Actor *actor = 0; + ActorMap::iterator it = m_actors.find(color); + if (it != m_actors.end()) { + actor = it->second; + } else { + qDebug() << "new actor of col" << color; + actor = new Actor(color); + m_actors[color] = actor; + m_scene->addItem(actor); + actor->setPos( mapPositionToCoord(x, y) ); + } + Actor::Movement direction; + switch (cur & transmission::direction_mask) { + case transmission::direction_left: direction = Actor::Left; break; + case transmission::direction_right: direction = Actor::Right; break; + case transmission::direction_up: direction = Actor::Up; break; + case transmission::direction_down: direction = Actor::Down; break; + default: Q_ASSERT(false); + } + //actor->move(direction, mapPositionToCoord(x, y); + } else { Q_ASSERT(false); } + + if(item != 0) { + m_scene->addItem(item); + item->setPos( mapPositionToCoord(x, y) ); } - Q_ASSERT(item != 0); - scene->addItem(item); - item->setPos( mapPositionToCoord(x, y) ); } } - - /* - Actor *actor3 = new Actor(Actor::Player3); - scene->addItem(actor3); - actor3->setPos(140, 100); - - for (unsigned int i=0; i<20; ++i) { - Block *b = new Block(Actor::Player1); - scene->addItem(b); - b->setPos( 100 + i*16, 200); - } - */ } QPoint MainWidget::mapPositionToCoord(unsigned int x, unsigned int y) { return QPoint(x * field_size[0], y * field_size[1]); } + +Actor* MainWidget::getActor(Color color) +{ + +} + -- cgit v1.2.3