EnemyShip::EnemyShip() { QGraphicsItem *spaceshipTail = new EnemyShipTail(this); QGraphicsItem *oneWing = new EnemyShipWing1(this); QGraphicsItem *secondWing = new EnemyShipWing2(this); QGraphicsItem *spaceshipBody = new EnemyShipBody(this); QGraphicsItem *spaceshipWindow = new EnemyShipWindow(this); spaceshipTail->setPos(602, 293); oneWing->setPos(565, 310); secondWing->setPos(623, 310); spaceshipBody->setPos(600, 300); spaceshipWindow->setPos(607, 332); timeline = new QTimeLine; QGraphicsItemAnimation *tailAnim = new QGraphicsItemAnimation; tailAnim->setItem(spaceshipTail); tailAnim->setTimeLine(timeline); tailAnim->setTranslationAt(0, 20, 0); tailAnim->setTranslationAt(1, -20, 0); QGraphicsItemAnimation *oneWingAnim = new QGraphicsItemAnimation; oneWingAnim->setItem(oneWing); oneWingAnim->setTimeLine(timeline); oneWingAnim->setTranslationAt(0, 20, 0); oneWingAnim->setTranslationAt(1, -20, 0); QGraphicsItemAnimation *secondWingAnim = new QGraphicsItemAnimation; secondWingAnim->setItem(secondWing); secondWingAnim->setTimeLine(timeline); secondWingAnim->setTranslationAt(0, 20, 0); secondWingAnim->setTranslationAt(1, -20, 0); QGraphicsItemAnimation *bodyAnim = new QGraphicsItemAnimation; bodyAnim->setItem(spaceshipBody); bodyAnim->setTimeLine(timeline); bodyAnim->setTranslationAt(0, 20, 0); bodyAnim->setTranslationAt(1, -20, 0); QGraphicsItemAnimation *windowAnim = new QGraphicsItemAnimation; windowAnim->setItem(spaceshipWindow); windowAnim->setTimeLine(timeline); windowAnim->setTranslationAt(0, 20, 0); windowAnim->setTranslationAt(1, -20, 0); timeline->setUpdateInterval(1000/25); timeline->setCurveShape(QTimeLine::SineCurve); timeline->setLoopCount(0); timeline->setDuration(2000); timeline->start(); }
void tst_QGraphicsItemAnimation::checkReturnedLists() { QGraphicsItemAnimation animation; animation.setPosAt(1.0, QPointF(10, -10)); animation.setPosAt(0.5, QPointF(5, -5)); animation.setRotationAt(0.3, 2.3); animation.setTranslationAt(0.3, 15, 15); animation.setScaleAt(0.3, 2.5, 1.8); animation.setShearAt(0.3, 5, 5); QCOMPARE(animation.posList().at(0), (QPair<qreal, QPointF>(0.5, QPointF(5, -5)))); QCOMPARE(animation.posList().at(1), (QPair<qreal, QPointF>(1.0, QPointF(10, -10)))); QCOMPARE(animation.rotationList().at(0), (QPair<qreal, qreal>(0.3, 2.3))); QCOMPARE(animation.translationList().at(0), (QPair<qreal, QPointF>(0.3, QPointF(15, 15)))); QCOMPARE(animation.scaleList().at(0), (QPair<qreal, QPointF>(0.3, QPointF(2.5, 1.8)))); QCOMPARE(animation.shearList().at(0), (QPair<qreal, QPointF>(0.3, QPointF(5, 5)))); QCOMPARE(animation.posList().size(), 2); QCOMPARE(animation.rotationList().size(), 1); QCOMPARE(animation.translationList().size(), 1); QCOMPARE(animation.scaleList().size(), 1); QCOMPARE(animation.shearList().size(), 1); }
void tst_QGraphicsItemAnimation::overwriteValueForStep() { QGraphicsItemAnimation animation; for (int i=0; i<3; i++){ animation.setPosAt(0.3, QPointF(3, -3.1)); animation.setRotationAt(0.3, 2.3); animation.setTranslationAt(0.3, 15, 15); animation.setScaleAt(0.3, 2.5, 1.8); animation.setShearAt(0.3, 5, 5); QCOMPARE(animation.posList().size(), 1); QCOMPARE(animation.rotationList().size(), 1); QCOMPARE(animation.translationList().size(), 1); QCOMPARE(animation.scaleList().size(), 1); QCOMPARE(animation.shearList().size(), 1); } }