void SpriteEaseBezier::onEnter()
{
    EaseSpriteDemo::onEnter();
    
    auto s = Director::getInstance()->getWinSize();
    
    //
    // startPosition can be any coordinate, but since the movement
    // is relative to the Bezier curve, make it (0,0)
    //
    
    centerSprites(3);
    
    // sprite 1
    ccBezierConfig bezier;
    bezier.controlPoint_1 = Point(0, s.height/2);
    bezier.controlPoint_2 = Point(300, -s.height/2);
    bezier.endPosition = Point(300,100);
    
    auto bezierForward = BezierBy::create(3, bezier);
    auto bezierEaseForward = EaseBezierAction::create(bezierForward);
    bezierEaseForward->setBezierParamer(0.5, 0.5, 1.0, 1.0);
    
    auto bezierEaseBack = bezierEaseForward->reverse();
    auto rep = RepeatForever::create(Sequence::create( bezierEaseForward, bezierEaseBack, NULL));
    
    
    // sprite 2
    _tamara->setPosition(Point(80,160));
	ccBezierConfig bezier2;
    bezier2.controlPoint_1 = Point(100, s.height/2);
    bezier2.controlPoint_2 = Point(200, -s.height/2);
    bezier2.endPosition = Point(240,160);
    
    auto bezierTo1 = BezierTo::create(2, bezier2);
    auto bezierEaseTo1 = EaseBezierAction::create(bezierTo1);
    bezierEaseTo1->setBezierParamer(0.5, 0.5, 1.0, 1.0);
    
    // sprite 3
    _kathia->setPosition(Point(400,160));
    auto bezierTo2 = BezierTo::create(2, bezier2);
    auto bezierEaseTo2 = EaseBezierAction::create(bezierTo2);
    bezierEaseTo2->setBezierParamer(0.0, 0.5, -5.0, 1.0);

    
    _grossini->runAction( rep);
    _tamara->runAction(bezierEaseTo1);
    _kathia->runAction(bezierTo2);
    
}
EaseBezierAction* EaseBezierAction::clone() const
{
	// no copy constructor
	auto a = new (std::nothrow) EaseBezierAction();
	a->initWithAction(_inner->clone());
	a->setBezierParamer(_p0,_p1,_p2,_p3);
	a->autorelease();
	return a;
}
EaseBezierAction* EaseBezierAction::clone() const
{
    // no copy constructor
    if (_inner)
    {
        auto ret = EaseBezierAction::create(_inner->clone());
        if (ret)
            ret->setBezierParamer(_p0,_p1,_p2,_p3);
        
        return ret;
    }

    return nullptr;
}