Example #1
0
void MainWindow::keyPressEvent(QKeyEvent *event)
{

    Figure newFig = *cur_figure;
    switch(event->key()){
    case Qt::Key_Up:{
        newFig.rotate();
        break;
    }
    case Qt::Key_Down: {
        newFig.setPosition(cur_figure->getPosition().x(), cur_figure->getPosition().y() + 1);
        break;
    }
    case Qt::Key_Left: {
        newFig.setPosition(cur_figure->getPosition().x() - 1, cur_figure->getPosition().y());
        break;
    }
    case Qt::Key_Right: {
        newFig.setPosition(cur_figure->getPosition().x() + 1, cur_figure->getPosition().y());
        break;
    }
    default: {
        QMainWindow::keyPressEvent(event);
    }
    }

    if (m_cup.hasPlace(newFig)) {
        delete cur_figure;
        cur_figure = new Figure(newFig);
    }
    draw();
}