From 2b3210e6d19e32b7746e0e1cdf22035ce508ca8a Mon Sep 17 00:00:00 2001 From: manuel Date: Wed, 6 Apr 2011 15:07:50 +0200 Subject: adding nicer blocks :D --- pacman-c++/mainwidget.cpp | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'pacman-c++/mainwidget.cpp') diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp index e9b4cc3..062fc6d 100644 --- a/pacman-c++/mainwidget.cpp +++ b/pacman-c++/mainwidget.cpp @@ -86,8 +86,18 @@ transmission::map_t createDummyMap() map[0][0] |= Color::none ^ transmission::block; map[0][1] |= Color::none ^ transmission::block; map[0][2] |= Color::none ^ transmission::block; + map[0][3] |= Color::none ^ transmission::block; + map[0][4] |= Color::none ^ transmission::block; + map[0][5] |= Color::none ^ transmission::block; map[1][0] |= Color::none ^ transmission::block; map[2][0] |= Color::none ^ transmission::block; + map[1][3] |= Color::none ^ transmission::block; + map[2][3] |= Color::none ^ transmission::block; + map[3][3] |= Color::none ^ transmission::block; + map[2][4] |= Color::none ^ transmission::block; + map[2][5] |= Color::none ^ transmission::block; + map[2][2] |= Color::none ^ transmission::block; + map[2][1] |= Color::none ^ transmission::block; map[4][3] |= Color::green ^ transmission::block; @@ -120,9 +130,24 @@ void MainWidget::loadDummyMap() Color::Color color = static_cast(cur & transmission::color_mask); qDebug() << "col=" << color; - PixmapItem *item = 0; + PixmapItem *item = NULL; if (cur & transmission::block) - item = new Block(color); + { + unsigned int neighbours = Block::None; + // check left side + if (x > 0 && map[x - 1][y] & transmission::block) + neighbours |= Block::Left; + // check right side + if (x < map_size[0] && map[x + 1][y] & transmission::block) + neighbours |= Block::Right; + // check upside + if (y > 0 && map[x][y - 1] & transmission::block) + neighbours |= Block::Up; + // check down side + if (y < map_size[1] && map[x][y + 1] & transmission::block) + neighbours |= Block::Down; + item = new Block(color, neighbours); + } else if (cur & transmission::bonuspoint) item = new BonusPoint(); else if (cur & transmission::pacman) @@ -162,7 +187,7 @@ void MainWidget::loadDummyMap() else Q_ASSERT(false); - if(item != 0) + if (item != NULL) { m_scene->addItem(item); item->setPos(mapPositionToCoord(x, y)); -- cgit v1.2.3