/** * updates the Player card with animation from stack to the playerhand * @brief Playground::updatePlayerCard * @param fromCard * @param toCard * @param withAnimation */ void Playground::updatePlayerCard(CardItem& fromCard, CardItem& toCard, bool withAnimation) { fromCard.setPos(stack.getX(), stack.getY()); addItem(fromCard.createImg()); qreal x = toCard.getX(); qreal y = toCard.getY(); if (withAnimation) { QEventLoop pause; prepareNewAnimation(pause); addPositionAnimation(*fromCard.createImg(), *toCard.createImg()); startAnimation(); pause.exec(); } if ((&toCard) != NULL) { } toCard = CardItem(fromCard); toCard.setPos(x, y); toCard.createImg()->setZValue(zValue); zValue++; addItem(toCard.createImg()); update(sceneRect()); }
/** * updates the Depot Card * @brief Playground::updateDepotCard * @param fromCard * @param toCard * @param withAnimation with Animation or without */ void Playground::updateDepotCard(CardItem& fromCard, CardItem& toCard, bool withAnimation) { qreal x = toCard.getX(); qreal y = toCard.getY(); if (withAnimation) { QEventLoop pause; prepareNewAnimation(pause); addPositionAnimation(*fromCard.createImg(), *toCard.createImg()); startAnimation(); pause.exec(QEventLoop::AllEvents); } removeItem(toCard.createImg()); toCard = CardItem(fromCard.getCard()); toCard.setPos(x, y); toCard.createImg()->setZValue(zValue); zValue++; addItem(toCard.createImg()); update(sceneRect()); }
void SVICurtainEffector::setAnimation(){ setOffsetDuration(mFullTimeDuration); SVIInt slideCount; for(SVIInt i=0; i<mColumnCount; i++){ for(SVIInt j=0; j<mRowCount; j++){ SVIPoint originPoint = mFromNslide[i][j]->getPosition(); slideWidth = (mSizeSlide->getRegion().getSize().mWidth / mRowCount) * 0.5f; slideHeight = (mSizeSlide->getRegion().getSize().mHeight / mColumnCount) * 0.5f; switch(mDirectionType){ case SVITransitionAnimation::LEFT: slideCount = mRowCount - 1 - j; break; case SVITransitionAnimation::RIGHT: slideCount = j; break; case SVITransitionAnimation::UP: slideCount = mColumnCount - 1 - i; break; case SVITransitionAnimation::DOWN: slideCount = i; break; } SVIAnimationSet* fromAniSet = new SVIAnimationSet(mSVIGLSurface); fromAniSet->mOffset = mGlovalOffsetDuration; fromAniSet->mDuration = mFullTimeDuration; fromAniSet->mRepeatCount = mRepeatCount; fromAniSet->mAutoReverse = mAutoReverse; fromAniSet->setInterpolator(SVIAnimation::ACCELERATE_DECELERATE); SVIAnimationSet* toAniSet = new SVIAnimationSet(mSVIGLSurface); toAniSet->mOffset =mGlovalOffsetDuration; toAniSet->mDuration = mFullTimeDuration; toAniSet->mRepeatCount = mRepeatCount; toAniSet->mAutoReverse = mAutoReverse; toAniSet->setInterpolator(SVIAnimation::ACCELERATE_DECELERATE); SVIInt offset = slideCount*offsetDuration + mGlovalOffsetDuration; switch(mDirectionType){ case SVITransitionAnimation::LEFT: mFromNslide[i][j]->setPivotPoint(SVIPoint(1.0f, 0.5f)); mToNslide[i][j]->setPivotPoint(SVIPoint(0.0f, 0.5f)); addRotationAnimation(fromAniSet, SVIVector3(0.0f, 0.0f, 0.0f), SVIVector3(0.0f, rotationAngle, 0.0f), mSlideDuration, mOffsetDuration); addPositionAnimation(fromAniSet,SVIPoint(originPoint.mX + slideWidth, originPoint.mY), SVIPoint(originPoint.mX - slideWidth, originPoint.mY), mSlideDuration, mOffsetDuration); addRotationAnimation(toAniSet, SVIVector3(0.0f, -rotationAngle, 0.0f), SVIVector3(0.0f, 0.0f, 0.0f), mSlideDuration, mOffsetDuration); addPositionAnimation(toAniSet, SVIPoint(originPoint.mX + slideWidth, originPoint.mY), SVIPoint(originPoint.mX - slideWidth, originPoint.mY), mSlideDuration, mOffsetDuration); break; case SVITransitionAnimation::RIGHT: mFromNslide[i][j]->setPivotPoint(SVIPoint(0.0f, 0.5f)); mToNslide[i][j]->setPivotPoint(SVIPoint(1.0f, 0.5f)); addRotationAnimation(fromAniSet, SVIVector3(0.0f, 0.0f, 0.0f), SVIVector3(0.0f, -rotationAngle, 0.0f), mSlideDuration, mOffsetDuration); addPositionAnimation(fromAniSet, SVIPoint(originPoint.mX - slideWidth, originPoint.mY), SVIPoint(originPoint.mX + slideWidth, originPoint.mY), mSlideDuration, mOffsetDuration); addRotationAnimation(toAniSet, SVIVector3(0.0f, rotationAngle, 0.0f), SVIVector3(0.0f, 0.0f, 0.0f), mSlideDuration, mOffsetDuration); addPositionAnimation(toAniSet, SVIPoint(originPoint.mX - slideWidth, originPoint.mY), SVIPoint(originPoint.mX + slideWidth, originPoint.mY), mSlideDuration, mOffsetDuration); break; case SVITransitionAnimation::UP: mFromNslide[i][j]->setPivotPoint(SVIPoint(0.5f, 1.0f)); mToNslide[i][j]->setPivotPoint(SVIPoint(0.5f, 0.0f)); addRotationAnimation(fromAniSet, SVIVector3(0.0f, 0.0f, 0.0f), SVIVector3(-rotationAngle, 0.0f, 0.0f), mSlideDuration, mOffsetDuration); addPositionAnimation(fromAniSet, SVIPoint(originPoint.mX, originPoint.mY + slideHeight), SVIPoint(originPoint.mX, originPoint.mY - slideHeight), mSlideDuration, mOffsetDuration); addRotationAnimation(toAniSet, SVIVector3(rotationAngle, 0.0f, 0.0f), SVIVector3(0.0f, 0.0f, 0.0f), mSlideDuration, mOffsetDuration); addPositionAnimation(toAniSet, SVIPoint(originPoint.mX , originPoint.mY + slideHeight), SVIPoint(originPoint.mX , originPoint.mY - slideHeight), mSlideDuration, mOffsetDuration); break; case SVITransitionAnimation::DOWN: mFromNslide[i][j]->setPivotPoint(SVIPoint(0.5f, 0.0f)); mToNslide[i][j]->setPivotPoint(SVIPoint(0.5f, 1.0f)); addRotationAnimation(fromAniSet, SVIVector3(0.0f, 0.0f, 0.0f), SVIVector3(rotationAngle, 0.0f, 0.0f), mSlideDuration, mOffsetDuration); addPositionAnimation(fromAniSet, SVIPoint(originPoint.mX, originPoint.mY - slideHeight), SVIPoint(originPoint.mX, originPoint.mY + slideHeight), mSlideDuration, mOffsetDuration); addRotationAnimation(toAniSet, SVIVector3(-rotationAngle, 0.0f, 0.0f), SVIVector3(0.0f, 0.0f, 0.0f), mSlideDuration, mOffsetDuration); addPositionAnimation(toAniSet, SVIPoint(originPoint.mX , originPoint.mY - slideHeight), SVIPoint(originPoint.mX , originPoint.mY + slideHeight), mSlideDuration, mOffsetDuration); break; } addZPositionAnimation(fromAniSet, -0.01f, 0.01f, mSlideDuration, mOffsetDuration); addZPositionAnimation(toAniSet, 0.01f, -0.01f, mSlideDuration, mOffsetDuration); mFromNslide[i][j]->addAnimation(fromAniSet); mToNslide[i][j]->addAnimation((toAniSet)); } } }
void SVIRotateCubeEffector::setAnimation(){ SVIPoint originPoint = mFromNslide[0][0]->getPosition(); slideWidth = (mSizeSlide->getRegion().getSize().mWidth / mRowCount) * 0.5f; slideHeight = (mSizeSlide->getRegion().getSize().mHeight / mColumnCount) * 0.5f; SVIAnimationSet* fromAniSet = new SVIAnimationSet(mSVIGLSurface); fromAniSet->mDuration = mFullTimeDuration; fromAniSet->mRepeatCount = mRepeatCount; fromAniSet->mOffset = mOffsetDuration + mGlovalOffsetDuration; fromAniSet->mAutoReverse = mAutoReverse; fromAniSet->setInterpolator(SVIAnimation::ACCELERATE_DECELERATE); fromAniSet->shareAnimationInfo(true); SVIAnimationSet* toAniSet = new SVIAnimationSet(mSVIGLSurface); toAniSet->mDuration = mFullTimeDuration; toAniSet->mRepeatCount = mRepeatCount; toAniSet->mOffset = mOffsetDuration + mGlovalOffsetDuration; toAniSet->mAutoReverse = mAutoReverse; toAniSet->setInterpolator(SVIAnimation::ACCELERATE_DECELERATE); toAniSet->shareAnimationInfo(true); switch(mDirectionType){ case SVITransitionAnimation::LEFT: mFromNslide[0][0]->setPivotPoint(SVIPoint(1.0f, 0.5f)); mToNslide[0][0]->setPivotPoint(SVIPoint(0.0f, 0.5f)); addRotationAnimation(fromAniSet, SVIVector3(0.0f, 0.0f, 0.0f), SVIVector3(0.0f, rotationAngle, 0.0f), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addPositionAnimation(fromAniSet,SVIPoint(originPoint.mX + slideWidth, originPoint.mY), SVIPoint(originPoint.mX - slideWidth, originPoint.mY), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addRotationAnimation(toAniSet, SVIVector3(0.0f, -rotationAngle, 0.0f), SVIVector3(0.0f, 0.0f, 0.0f), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addPositionAnimation(toAniSet, SVIPoint(originPoint.mX + slideWidth, originPoint.mY), SVIPoint(originPoint.mX - slideWidth, originPoint.mY), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); break; case SVITransitionAnimation::RIGHT: mFromNslide[0][0]->setPivotPoint(SVIPoint(0.0f, 0.5f)); mToNslide[0][0]->setPivotPoint(SVIPoint(1.0f, 0.5f)); addRotationAnimation(fromAniSet, SVIVector3(0.0f, 0.0f, 0.0f), SVIVector3(0.0f, -rotationAngle, 0.0f), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addPositionAnimation(fromAniSet, SVIPoint(originPoint.mX - slideWidth, originPoint.mY), SVIPoint(originPoint.mX + slideWidth, originPoint.mY), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addRotationAnimation(toAniSet, SVIVector3(0.0f, rotationAngle, 0.0f), SVIVector3(0.0f, 0.0f, 0.0f), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addPositionAnimation(toAniSet, SVIPoint(originPoint.mX - slideWidth, originPoint.mY), SVIPoint(originPoint.mX + slideWidth, originPoint.mY), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); break; case SVITransitionAnimation::UP: mFromNslide[0][0]->setPivotPoint(SVIPoint(0.5f, 1.0f)); mToNslide[0][0]->setPivotPoint(SVIPoint(0.5f, 0.0f)); addRotationAnimation(fromAniSet, SVIVector3(0.0f, 0.0f, 0.0f), SVIVector3(-rotationAngle, 0.0f, 0.0f), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addPositionAnimation(fromAniSet, SVIPoint(originPoint.mX, originPoint.mY + slideHeight), SVIPoint(originPoint.mX, originPoint.mY - slideHeight), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addRotationAnimation(toAniSet, SVIVector3(rotationAngle, 0.0f, 0.0f), SVIVector3(0.0f, 0.0f, 0.0f), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addPositionAnimation(toAniSet, SVIPoint(originPoint.mX , originPoint.mY + slideHeight), SVIPoint(originPoint.mX , originPoint.mY - slideHeight), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); break; case SVITransitionAnimation::DOWN: mFromNslide[0][0]->setPivotPoint(SVIPoint(0.5f, 0.0f)); mToNslide[0][0]->setPivotPoint(SVIPoint(0.5f, 1.0f)); addRotationAnimation(fromAniSet, SVIVector3(0.0f, 0.0f, 0.0f), SVIVector3(rotationAngle, 0.0f, 0.0f), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addPositionAnimation(fromAniSet, SVIPoint(originPoint.mX, originPoint.mY - slideHeight), SVIPoint(originPoint.mX, originPoint.mY + slideHeight), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addRotationAnimation(toAniSet, SVIVector3(-rotationAngle, 0.0f, 0.0f), SVIVector3(0.0f, 0.0f, 0.0f), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addPositionAnimation(toAniSet, SVIPoint(originPoint.mX , originPoint.mY - slideHeight), SVIPoint(originPoint.mX , originPoint.mY + slideHeight), mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); break; } addZPositionAnimation(fromAniSet, -0.01f, 0.01f, mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); addZPositionAnimation(toAniSet, 0.01f, -0.01f, mFullTimeDuration, mOffsetDuration + mGlovalOffsetDuration); mFromNslide[0][0]->addAnimation(fromAniSet); mToNslide[0][0]->addAnimation(toAniSet); }