diff options
| author | manuel <manuel@mausz.at> | 2011-04-06 15:07:50 +0200 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2011-04-06 15:07:50 +0200 |
| commit | 2b3210e6d19e32b7746e0e1cdf22035ce508ca8a (patch) | |
| tree | 2fdd4967de000e72c9a9f83eefad47e7f13e6e21 /pacman-c++ | |
| parent | 6dc8b50817fe5da8550c245db755f7014402c62a (diff) | |
| download | foop-2b3210e6d19e32b7746e0e1cdf22035ce508ca8a.tar.gz foop-2b3210e6d19e32b7746e0e1cdf22035ce508ca8a.tar.bz2 foop-2b3210e6d19e32b7746e0e1cdf22035ce508ca8a.zip | |
adding nicer blocks :D
Diffstat (limited to 'pacman-c++')
| -rw-r--r-- | pacman-c++/actor.cpp | 4 | ||||
| -rw-r--r-- | pacman-c++/block.cpp | 8 | ||||
| -rw-r--r-- | pacman-c++/block.h | 5 | ||||
| -rw-r--r-- | pacman-c++/constants.h | 3 | ||||
| -rw-r--r-- | pacman-c++/mainwidget.cpp | 31 | ||||
| -rw-r--r-- | pacman-c++/pacman.qrc | 1 | ||||
| -rw-r--r-- | pacman-c++/pics/block0.png | bin | 181 -> 479 bytes | |||
| -rw-r--r-- | pacman-c++/pics/block1.png | bin | 179 -> 453 bytes | |||
| -rw-r--r-- | pacman-c++/pics/block2.png | bin | 195 -> 476 bytes | |||
| -rw-r--r-- | pacman-c++/pics/block4.png | bin | 180 -> 452 bytes | |||
| -rw-r--r-- | pacman-c++/pics/block8.png | bin | 0 -> 471 bytes |
11 files changed, 43 insertions, 9 deletions
diff --git a/pacman-c++/actor.cpp b/pacman-c++/actor.cpp index 3794b63..4a132f9 100644 --- a/pacman-c++/actor.cpp +++ b/pacman-c++/actor.cpp | |||
| @@ -35,8 +35,8 @@ Actor::Actor(Color::Color color, QGraphicsItem *parent) | |||
| 35 | for (int i = 0; i < 4; i++) | 35 | for (int i = 0; i < 4; i++) |
| 36 | { | 36 | { |
| 37 | PixmapItem *img = new PixmapItem(m_pix, this); | 37 | PixmapItem *img = new PixmapItem(m_pix, this); |
| 38 | int x = i * 20 + SPRITE_MARGIN; | 38 | int x = i * SPRITE_OFFSET + SPRITE_MARGIN; |
| 39 | int y = m_direction * 20 + SPRITE_MARGIN; | 39 | int y = m_direction * SPRITE_OFFSET + SPRITE_MARGIN; |
| 40 | img->setSprite(x, y, SPRITE_WIDTH, SPRITE_HEIGHT); | 40 | img->setSprite(x, y, SPRITE_WIDTH, SPRITE_HEIGHT); |
| 41 | img->setZValue(zValue()); | 41 | img->setZValue(zValue()); |
| 42 | img->setVisible(false); | 42 | img->setVisible(false); |
diff --git a/pacman-c++/block.cpp b/pacman-c++/block.cpp index ccb7ade..9e5e427 100644 --- a/pacman-c++/block.cpp +++ b/pacman-c++/block.cpp | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | QMap<Color::Color, QPixmap> Block::m_pixmaps; | 5 | QMap<Color::Color, QPixmap> Block::m_pixmaps; |
| 6 | 6 | ||
| 7 | Block::Block(Color::Color color, Neighbour neighbour, QGraphicsItem *parent) | 7 | Block::Block(Color::Color color, unsigned int neighbours, QGraphicsItem *parent) |
| 8 | : PixmapItem(parent) | 8 | : PixmapItem(parent) |
| 9 | { | 9 | { |
| 10 | if (m_pixmaps.find(color) == m_pixmaps.end()) | 10 | if (m_pixmaps.find(color) == m_pixmaps.end()) |
| @@ -13,5 +13,11 @@ Block::Block(Color::Color color, Neighbour neighbour, QGraphicsItem *parent) | |||
| 13 | m_pixmaps[color] = QPixmap(pixmapName); | 13 | m_pixmaps[color] = QPixmap(pixmapName); |
| 14 | } | 14 | } |
| 15 | setPixmap(m_pixmaps.find(color).value()); | 15 | setPixmap(m_pixmaps.find(color).value()); |
| 16 | setNeighbours(neighbours); | ||
| 16 | qDebug() << "loading block w color: " << color; | 17 | qDebug() << "loading block w color: " << color; |
| 17 | } | 18 | } |
| 19 | |||
| 20 | void Block::setNeighbours(unsigned int neighbours) | ||
| 21 | { | ||
| 22 | setSprite(neighbours * SPRITE_OFFSET, 0, SPRITE_WIDTH, SPRITE_HEIGHT); | ||
| 23 | } | ||
diff --git a/pacman-c++/block.h b/pacman-c++/block.h index 40bde51..29ddd23 100644 --- a/pacman-c++/block.h +++ b/pacman-c++/block.h | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | class Block | 8 | class Block |
| 9 | : public PixmapItem | 9 | : public PixmapItem |
| 10 | { | 10 | { |
| 11 | public: | ||
| 11 | enum Neighbour { | 12 | enum Neighbour { |
| 12 | None = 0, | 13 | None = 0, |
| 13 | Left = (1 << 0), | 14 | Left = (1 << 0), |
| @@ -16,8 +17,8 @@ class Block | |||
| 16 | Down = (1 << 3) | 17 | Down = (1 << 3) |
| 17 | }; | 18 | }; |
| 18 | 19 | ||
| 19 | public: | 20 | Block(Color::Color color, unsigned int neighbours = None, QGraphicsItem *parent = 0); |
| 20 | Block(Color::Color color, Neighbour neighbour = None, QGraphicsItem *parent = 0); | 21 | void setNeighbours(unsigned int neighbours); |
| 21 | 22 | ||
| 22 | private: | 23 | private: |
| 23 | // map for saving QPixmaps for reuse | 24 | // map for saving QPixmaps for reuse |
diff --git a/pacman-c++/constants.h b/pacman-c++/constants.h index 15d3022..33f235a 100644 --- a/pacman-c++/constants.h +++ b/pacman-c++/constants.h | |||
| @@ -2,8 +2,9 @@ | |||
| 2 | #define CONSTANTS_H | 2 | #define CONSTANTS_H |
| 3 | 3 | ||
| 4 | #define SPRITE_MARGIN 2 | 4 | #define SPRITE_MARGIN 2 |
| 5 | #define SPRITE_WIDTH 16 | 5 | #define SPRITE_WIDTH 16 |
| 6 | #define SPRITE_HEIGHT 16 | 6 | #define SPRITE_HEIGHT 16 |
| 7 | #define SPRITE_OFFSET 20 | ||
| 7 | 8 | ||
| 8 | const unsigned int map_size[2] = { 20, 20 }; | 9 | const unsigned int map_size[2] = { 20, 20 }; |
| 9 | const unsigned int field_size[2] = { 16, 16 }; | 10 | const unsigned int field_size[2] = { 16, 16 }; |
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() | |||
| 86 | map[0][0] |= Color::none ^ transmission::block; | 86 | map[0][0] |= Color::none ^ transmission::block; |
| 87 | map[0][1] |= Color::none ^ transmission::block; | 87 | map[0][1] |= Color::none ^ transmission::block; |
| 88 | map[0][2] |= Color::none ^ transmission::block; | 88 | map[0][2] |= Color::none ^ transmission::block; |
| 89 | map[0][3] |= Color::none ^ transmission::block; | ||
| 90 | map[0][4] |= Color::none ^ transmission::block; | ||
| 91 | map[0][5] |= Color::none ^ transmission::block; | ||
| 89 | map[1][0] |= Color::none ^ transmission::block; | 92 | map[1][0] |= Color::none ^ transmission::block; |
| 90 | map[2][0] |= Color::none ^ transmission::block; | 93 | map[2][0] |= Color::none ^ transmission::block; |
| 94 | map[1][3] |= Color::none ^ transmission::block; | ||
| 95 | map[2][3] |= Color::none ^ transmission::block; | ||
| 96 | map[3][3] |= Color::none ^ transmission::block; | ||
| 97 | map[2][4] |= Color::none ^ transmission::block; | ||
| 98 | map[2][5] |= Color::none ^ transmission::block; | ||
| 99 | map[2][2] |= Color::none ^ transmission::block; | ||
| 100 | map[2][1] |= Color::none ^ transmission::block; | ||
| 91 | 101 | ||
| 92 | map[4][3] |= Color::green ^ transmission::block; | 102 | map[4][3] |= Color::green ^ transmission::block; |
| 93 | 103 | ||
| @@ -120,9 +130,24 @@ void MainWidget::loadDummyMap() | |||
| 120 | Color::Color color = static_cast<Color::Color>(cur & transmission::color_mask); | 130 | Color::Color color = static_cast<Color::Color>(cur & transmission::color_mask); |
| 121 | qDebug() << "col=" << color; | 131 | qDebug() << "col=" << color; |
| 122 | 132 | ||
| 123 | PixmapItem *item = 0; | 133 | PixmapItem *item = NULL; |
| 124 | if (cur & transmission::block) | 134 | if (cur & transmission::block) |
| 125 | item = new Block(color); | 135 | { |
| 136 | unsigned int neighbours = Block::None; | ||
| 137 | // check left side | ||
| 138 | if (x > 0 && map[x - 1][y] & transmission::block) | ||
| 139 | neighbours |= Block::Left; | ||
| 140 | // check right side | ||
| 141 | if (x < map_size[0] && map[x + 1][y] & transmission::block) | ||
| 142 | neighbours |= Block::Right; | ||
| 143 | // check upside | ||
| 144 | if (y > 0 && map[x][y - 1] & transmission::block) | ||
| 145 | neighbours |= Block::Up; | ||
| 146 | // check down side | ||
| 147 | if (y < map_size[1] && map[x][y + 1] & transmission::block) | ||
| 148 | neighbours |= Block::Down; | ||
| 149 | item = new Block(color, neighbours); | ||
| 150 | } | ||
| 126 | else if (cur & transmission::bonuspoint) | 151 | else if (cur & transmission::bonuspoint) |
| 127 | item = new BonusPoint(); | 152 | item = new BonusPoint(); |
| 128 | else if (cur & transmission::pacman) | 153 | else if (cur & transmission::pacman) |
| @@ -162,7 +187,7 @@ void MainWidget::loadDummyMap() | |||
| 162 | else | 187 | else |
| 163 | Q_ASSERT(false); | 188 | Q_ASSERT(false); |
| 164 | 189 | ||
| 165 | if(item != 0) | 190 | if (item != NULL) |
| 166 | { | 191 | { |
| 167 | m_scene->addItem(item); | 192 | m_scene->addItem(item); |
| 168 | item->setPos(mapPositionToCoord(x, y)); | 193 | item->setPos(mapPositionToCoord(x, y)); |
diff --git a/pacman-c++/pacman.qrc b/pacman-c++/pacman.qrc index feb4276..e3aab92 100644 --- a/pacman-c++/pacman.qrc +++ b/pacman-c++/pacman.qrc | |||
| @@ -10,5 +10,6 @@ | |||
| 10 | <file alias="block4">pics/block4.png</file> | 10 | <file alias="block4">pics/block4.png</file> |
| 11 | <file alias="bonuspoints">pics/bonuspoints.png</file> | 11 | <file alias="bonuspoints">pics/bonuspoints.png</file> |
| 12 | <file alias="points">pics/points.png</file> | 12 | <file alias="points">pics/points.png</file> |
| 13 | <file alias="block8">pics/block8.png</file> | ||
| 13 | </qresource> | 14 | </qresource> |
| 14 | </RCC> | 15 | </RCC> |
diff --git a/pacman-c++/pics/block0.png b/pacman-c++/pics/block0.png index 7f93087..76bc4b7 100644 --- a/pacman-c++/pics/block0.png +++ b/pacman-c++/pics/block0.png | |||
| Binary files differ | |||
diff --git a/pacman-c++/pics/block1.png b/pacman-c++/pics/block1.png index 4188bcf..99e8633 100644 --- a/pacman-c++/pics/block1.png +++ b/pacman-c++/pics/block1.png | |||
| Binary files differ | |||
diff --git a/pacman-c++/pics/block2.png b/pacman-c++/pics/block2.png index cf1a043..963207e 100644 --- a/pacman-c++/pics/block2.png +++ b/pacman-c++/pics/block2.png | |||
| Binary files differ | |||
diff --git a/pacman-c++/pics/block4.png b/pacman-c++/pics/block4.png index 13eb22d..6662de4 100644 --- a/pacman-c++/pics/block4.png +++ b/pacman-c++/pics/block4.png | |||
| Binary files differ | |||
diff --git a/pacman-c++/pics/block8.png b/pacman-c++/pics/block8.png new file mode 100644 index 0000000..00fbd74 --- /dev/null +++ b/pacman-c++/pics/block8.png | |||
| Binary files differ | |||
