spTween Jewel::DropTo(Vector2 pos) { int time = fabs(getPosition().y - pos.y) * 2; spTween tween = addTween(Sprite::TweenPosition(pos),time); state = jsDropped; return tween; }
spTween Jewel::PlayAnimation() { if (!(state==jsNormal && locked) ) return 0; state = jsAnimation; string anim = jewels_ids[_id]; return addTween(Sprite::TweenAlpha(0), 500, 1); }
void MyButton::onEvent(Event* ev) { TouchEvent* event = static_cast<TouchEvent*>(ev); if (ev->type == TouchEvent::TOUCH_DOWN) setColor(Color::Red); if (ev->type == TouchEvent::TOUCH_UP) setColor(Color::White); if (ev->type == TouchEvent::CLICK) { //clicked button should scale up and down setScale(1.0f); addTween(Actor::TweenScale(1.1f), 300, 1, true); } }
void Jewel::SetSelected() { if (state != jsNormal) return; state = jsSelected; spTweenQueue tween = new TweenQueue(); old_position = getPosition(); //setPosition(getX() + JEWEL_SIZE/2, getY() + JEWEL_SIZE/2); tween->add(Sprite::TweenRotation(MATH_PI * 0.1f), 100); tween->add(Sprite::TweenRotation(MATH_PI * (-0.1f)), 400,-1,true); addTween(tween); }
void ExplosionEffectsManager::ExplosionEffect::run(TweensManager* tweensManager, const FinishCallback& finishCallback) { Random& random = Random::getInstance(); float maxDuration = -1.0f; SequenceTween* longestSequence = nullptr; for (int i=0; i<N_BITS; ++i) { float angle = (i * (360.0f / N_BITS)); auto sprite = sprites[i]; sprite->setScale(1.0f); sprite->setRotation(angle); float dist = (40.0f + random.next() * 30.0f); Vec2 moveVector(std::cos(angle)*dist, std::sin(angle)*dist); Vec2 endPosition = (sprite->getPosition() + moveVector); float speed = (125.0f + random.next() * 25.0f); float movementDuration = (dist / speed); float endDelay = 0.0f; auto sequenceTween = new SequenceTween(); auto moveAndFade = new ConcurrentTween(); moveAndFade->addTween(new EaseTween(new MoveTween(sprite, endPosition, movementDuration), EaseFunctions::easeIn)); moveAndFade->addTween(new RotateTween(sprite, 2.0f*speed, movementDuration)); moveAndFade->addTween(new EaseTween(new ScaleTween(sprite, 0.25f, movementDuration), EaseFunctions::easeOut)); sequenceTween->addTween(moveAndFade); sequenceTween->addTween(new DelayTween(endDelay)); sequenceTween->addTween(new VisibilityTween(sprite, false)); tweensManager->addTween(sequenceTween); float tweenDuration = (movementDuration + endDelay); if (tweenDuration > maxDuration) { maxDuration = tweenDuration; longestSequence = sequenceTween; } } longestSequence->addTween(new FunctionTween(finishCallback)); }
void ofxTweener::addTween(float &var, float to, float time, float (ofxTransitions::*ease) (float,float,float,float), float delay, float bezierPoint){ addTween(var,to,time,ease,delay, bezierPoint, true); }
void ofxTweener::addTween(float &var, float to, float time, float (ofxTransitions::*ease) (float,float,float,float), float delay){ addTween(var,to,time,ease,delay,0,false); }
void ofxTweener::addTween(float &var, float to, float time){ addTween(var,to,time, &ofxTransitions::easeOutExpo ,0,0,false); }
void ofxTweener::addTween(float &var, float to, float time, float (ofxTransitions::*ease) (float,float,float,float), float delay, float bezierPoint, std::function<void(float *arg)> callback){ addTween(var,to,time,ease,delay, bezierPoint, true, callback); }
void ofxTweener::addTween(float &var, float to, float time, float (ofxTransitions::*ease) (float,float,float,float), std::function<void(float *arg)> callback){ addTween(var,to,time,ease,0,0,false, callback); }
void ofxTweener::addTween(float &var, float to, float time, std::function<void(float *arg)> callback){ addTween(var,to,time, &ofxTransitions::easeOutExpo ,0,0,false, callback); }