#include "sceneholder.h" #include "constants.h" #include "pixmapitem.h" #include "block.h" #include "actor.h" #include "bonuspoint.h" #include "point.h" SceneHolder::SceneHolder(QWidget* parent): QWidget(parent) { m_scene = new QGraphicsScene(0, 0, Constants::map_size_pixel.width, Constants::map_size_pixel.height, this); m_scene->setBackgroundBrush(Qt::black); visualMap.resize(Constants::map_size.width); for (int i=0; iaddItem(actor); actor->setPos(mapPositionToCoord(x, y)); } Actor::Movement direction = Actor::None; switch (cur & Transmission::direction_mask) { case Transmission::direction_none: direction = Actor::None; break; 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 != NULL) { m_scene->addItem(item); item->setPos(mapPositionToCoord(x, y)); PixmapItem* oldItem = visualMap[x][y]; visualMap[x][y] = item; if (oldItem != NULL) { m_scene->removeItem(item); delete oldItem; } } } } } QPoint SceneHolder::mapPositionToCoord(unsigned int x, unsigned int y) { return QPoint(x * Constants::field_size.width, y * Constants::field_size.height); }