PixmapAnimation* PixmapAnimation::GetPixmapAnimation(QGraphicsItem *parent, const QString &emotion) { PixmapAnimation *pma = new PixmapAnimation(); pma->setPath(QString("image/system/emotion/%1/").arg(emotion)); if(pma->valid()) { if(emotion == "no-success") { pma->moveBy(pma->boundingRect().width()*0.15, pma->boundingRect().height()*0.15); pma->setScale(0.7); } else if(emotion.contains("DoubleSword")) { pma->moveBy(13, -85); pma->setScale(1.3); } else if(emotion.contains("Fan") || emotion.contains("GudingBlade")) { pma->moveBy(-30, -80); pma->setScale(1.3); } else if(emotion.contains("/spear")) { pma->moveBy(-90, -80); pma->setScale(1.3); } pma->moveBy((parent->boundingRect().width() - pma->boundingRect().width())/2, (parent->boundingRect().height() - pma->boundingRect().height())/2); pma->setParentItem(parent); pma->setZValue(20002.0); if(emotion.contains("weapon")){ pma->hide(); QTimer::singleShot(750, pma, SLOT(preStart())); } else pma->startTimer(S_DEFAULT_INTERVAL); connect(pma, SIGNAL(finished()), pma, SLOT(deleteLater())); return pma; } else { delete pma; return NULL; } }
void Dashboard::showSeat() { const QRect region = G_DASHBOARD_LAYOUT.m_seatIconRegion; PixmapAnimation *pma = PixmapAnimation::GetPixmapAnimation(_m_rightFrame, "seat"); if (pma) { pma->setTransform(QTransform::fromTranslate(- pma->boundingRect().width() / 2, - pma->boundingRect().height() / 2)); pma->setPos(region.x() + region.width() / 2, region.y() + region.height() / 2); } _paintPixmap(_m_seatItem, region, _getPixmap(QSanRoomSkin::S_SKIN_KEY_SEAT_NUMBER, QString::number(m_player->getSeat())), _m_rightFrame); //save the seat number for later use m_player->setProperty("UI_Seat", m_player->getSeat()); _m_seatItem->setZValue(1.1); }
PixmapAnimation *PixmapAnimation::GetPixmapAnimation(QGraphicsItem *parent, const QString &emotion) { PixmapAnimation *pma = new PixmapAnimation(parent); pma->setPath(QString("image/system/emotion/%1/").arg(emotion)); if (pma->valid()) { //ÎäÆ÷¶¯»ÏÔʾλÖÃÍùÓÒϽÇÒÆÒ»µã£¬ÒÔÃâÓë"ɱ"µÄ¶¯»Î»ÖÃÖصþ if (emotion.startsWith("weapon/")) { pma->moveBy(30, 50); } if (emotion == "no-success") { pma->moveBy(pma->boundingRect().width() * 0.25, pma->boundingRect().height() * 0.25); pma->setScale(0.5); } else if (emotion == "success") { pma->moveBy(pma->boundingRect().width() * 0.1, pma->boundingRect().height() * 0.1); pma->setScale(0.8); } else if (emotion.contains("double_sword")) pma->moveBy(13, -20); else if (emotion.contains("fan") || emotion.contains("guding_blade")) pma->moveBy(0, -20); else if (emotion.contains("/spear")) pma->moveBy(-20, -20); pma->moveBy((parent->boundingRect().width() - pma->boundingRect().width()) / 2, (parent->boundingRect().height() - pma->boundingRect().height()) / 2); pma->setZValue(20002.0); if (emotion.contains("weapon")) { pma->hide(); QTimer::singleShot(300, pma, SLOT(preStart())); } else { if (emotion == "no-success" || emotion == "no-success") { pma->startTimer(S_DEFAULT_INTERVAL * 0.7); } else { pma->startTimer(S_DEFAULT_INTERVAL); } } connect(pma, SIGNAL(finished()), pma, SLOT(deleteLater())); return pma; } else { delete pma; return NULL; } }
PixmapAnimation* PixmapAnimation::GetPixmapAnimation(QGraphicsObject *parent, const QString &emotion) { PixmapAnimation *pma = new PixmapAnimation(); pma->setPath(QString("image/system/emotion/%1/").arg(emotion)); if(pma->valid()) { if(emotion == "slash_red" || emotion == "slash_black" || emotion == "thunder_slash" || emotion == "peach" || emotion == "analeptic") { pma->moveBy(pma->boundingRect().width()*0.15, pma->boundingRect().height()*0.15); pma->setScale(0.7); } else if(emotion == "no-success") { pma->moveBy(pma->boundingRect().width()*0.15, pma->boundingRect().height()*0.15); pma->setScale(0.7); } pma->moveBy((parent->boundingRect().width() - pma->boundingRect().width())/2, (parent->boundingRect().height() - pma->boundingRect().height())/2); { if(emotion == "fire_slash")pma->moveBy(40,0); } pma->setParentItem(parent); pma->startTimer(50); connect(pma,SIGNAL(finished()),pma,SLOT(deleteLater())); return pma; } else { delete pma; return NULL; } }