示例#1
0
void Element::draw(QPainter &painter, Images &images) const
{
    switch (_type)
    {
    case Element::MINE_S:
    case Element::MINE_L:
    case Element::MINE_M:
    case Element::MINE_S_ON:
    case Element::MINE_L_ON:
    case Element::MINE_M_ON:
    case Element::MINE_EXPLO:
        painter.drawImage(_center, images.getImage(_type));
        break;
    case Element::SHIP_1:
    case Element::SHIP_2:
    case Element::SHIP_3:
    case Element::SHIP_4:

        /* Draw shield */
        if (shielded())
        {
            DEBUG("Element::draw() Shield", false);
            painter.drawImage(QRect(QPoint(_center.x() - 20, _center.y() - 20),QSize(40,40)),
                              images.getImage(Element::SHIELD, _angle));
        }

        painter.drawImage(QRect(QPoint(_imageCenter .x(), _imageCenter.y()), QSize(32,32))
                        , images.getImage(_type, _angle));
        break;

    case Element::SHOT:
        if(playSound())
            QSound::play("sound/shot.wav");

        DEBUG("Type : " << _type, false);
        painter.drawImage(QRect(QPoint(_center.x() - 10, _center.y() - 10), QSize(20, 20)),
                          images.getImage(_type));
        break;
    default:
        break;
    }
}
示例#2
0
void PlayerInfos::draw(QPainter &painter, Images &images) const
{
    painter.setPen(_color);
    painter.setBrush(_brush);
    painter.drawText(_position, _pseudo);
    painter.drawText(_position.x(), _position.y() + 15, _scoreText);

    /* Draw lives */
    for (quint32 i = 0; i < _lives; ++i)
    {
        painter.drawImage (_position.x() + i * 24, _position.y() + 25, images.getImage(Element::LIVE));
    }
}