Exemple #1
0
Field::Field(QGraphicsScene *scene) //: QObject()
{
    m_scene = scene;
    m_animating = false;

    m_pathItems.fill(NULL, W * H);
    ResourceLoader *loader = ResourceLoader::instance();
    for (int i = 0; i < W; i++)
    {
        for (int j = 0; j < H; j++)
        {
            QGraphicsObject *item = new SvgRendererItem(loader->tile());
            item->setPos(i * CELL_SIZE, j * CELL_SIZE);
#ifdef QT_DEBUG
            //if (j % 2 && i % 2)
            //    item->setScale(0.5);
#endif
            item->setZValue(0);
            m_scene->addItem(item);

            item = new SvgRendererItem(loader->pathmarker());
            item->setPos(i * CELL_SIZE, j * CELL_SIZE);
            item->setZValue(2);
            item->setVisible(false);
            m_scene->addItem(item);
            setVectorAt(m_pathItems, i, j, item);
        }
    }

    m_sel = QPoint(-1, -1);
    m_selItem = new SvgRendererItem(loader->select());
    m_selItem->setZValue(1);
    m_selItem->setVisible(false);
    m_scene->addItem(m_selItem);

    m_field.fill(0, W * H);
    m_fieldItems.fill(NULL, W * H);
    m_next.fill({ QPoint(-1, -1), 0, NULL, NULL }, 3);
}