diff options
| -rw-r--r-- | pacman-c++/mainwidget.cpp | 13 | ||||
| -rw-r--r-- | pacman-c++/mainwidget.h | 2 |
2 files changed, 13 insertions, 2 deletions
diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp index bf049f2..a3acc45 100644 --- a/pacman-c++/mainwidget.cpp +++ b/pacman-c++/mainwidget.cpp | |||
| @@ -56,6 +56,11 @@ Transmission::map_t createDummyMap() | |||
| 56 | MainWidget::MainWidget() | 56 | MainWidget::MainWidget() |
| 57 | : currentKey(0) | 57 | : currentKey(0) |
| 58 | { | 58 | { |
| 59 | visualMap.resize(Constants::map_size.width); | ||
| 60 | for (int i=0; i<visualMap.size(); ++i) { | ||
| 61 | visualMap[i].resize(Constants::map_size.height); | ||
| 62 | } | ||
| 63 | |||
| 59 | createGui(); | 64 | createGui(); |
| 60 | updateMap(createDummyMap()); | 65 | updateMap(createDummyMap()); |
| 61 | } | 66 | } |
| @@ -133,7 +138,7 @@ void MainWidget::updateMap(const Transmission::map_t& map) | |||
| 133 | Color::Color color = static_cast<Color::Color>(cur & Transmission::color_mask); | 138 | Color::Color color = static_cast<Color::Color>(cur & Transmission::color_mask); |
| 134 | qDebug() << "col=" << color; | 139 | qDebug() << "col=" << color; |
| 135 | 140 | ||
| 136 | PixmapItem *item = NULL; | 141 | PixmapItem* item = NULL; |
| 137 | if (cur & Transmission::block) | 142 | if (cur & Transmission::block) |
| 138 | { | 143 | { |
| 139 | unsigned int neighbours = Block::None; | 144 | unsigned int neighbours = Block::None; |
| @@ -194,6 +199,12 @@ void MainWidget::updateMap(const Transmission::map_t& map) | |||
| 194 | { | 199 | { |
| 195 | m_scene->addItem(item); | 200 | m_scene->addItem(item); |
| 196 | item->setPos(mapPositionToCoord(x, y)); | 201 | item->setPos(mapPositionToCoord(x, y)); |
| 202 | PixmapItem* oldItem = visualMap[x][y]; | ||
| 203 | visualMap[x][y] = item; | ||
| 204 | if (oldItem != NULL) { | ||
| 205 | m_scene->removeItem(item); | ||
| 206 | delete oldItem; | ||
| 207 | } | ||
| 197 | } | 208 | } |
| 198 | } | 209 | } |
| 199 | } | 210 | } |
diff --git a/pacman-c++/mainwidget.h b/pacman-c++/mainwidget.h index 36e5624..951b6c6 100644 --- a/pacman-c++/mainwidget.h +++ b/pacman-c++/mainwidget.h | |||
| @@ -29,7 +29,7 @@ private: | |||
| 29 | 29 | ||
| 30 | void updateScore(); | 30 | void updateScore(); |
| 31 | 31 | ||
| 32 | PixmapItem ** visualMap; | 32 | QVector< QVector< PixmapItem* > > visualMap; |
| 33 | 33 | ||
| 34 | // data conversion | 34 | // data conversion |
| 35 | QPoint mapPositionToCoord(unsigned int x, unsigned int y); | 35 | QPoint mapPositionToCoord(unsigned int x, unsigned int y); |
