28#include "../testResource.h"
46 auto s = Director::getInstance()->getWinSize();
48 if( numberOfSprites == 0 )
54 else if ( numberOfSprites == 1 )
58 _grossini->setPosition(s.width/2, s.height/2);
60 else if( numberOfSprites == 2 )
62 _kathia->setPosition(s.width/3, s.height/2);
63 _tamara->setPosition(2*s.width/3, s.height/2);
66 else if( numberOfSprites == 3 )
68 _grossini->setPosition(s.width/2, s.height/2);
69 _tamara->setPosition(s.width/4, s.height/2);
70 _kathia->setPosition(3 * s.width/4, s.height/2);
86 auto move_back = move->reverse();
88 auto move_ease_in = EaseIn::create(move->clone(), 2.5f);
89 auto move_ease_in_back = move_ease_in->reverse();
91 auto move_ease_out = EaseOut::create(move->clone(), 2.5f);
92 auto move_ease_out_back = move_ease_out->reverse();
94 auto delay = DelayTime::create(0.25f);
96 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
97 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
98 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
101 auto a2 =
_grossini->runAction(RepeatForever::create(seq1));
104 auto a1 =
_tamara->runAction(RepeatForever::create(seq2));
107 auto a =
_kathia->runAction(RepeatForever::create(seq3));
124 return "EaseIn - EaseOut - Stop";
141 auto move_ease_inout1 = EaseInOut::create(move->clone(), 0.65f);
142 auto move_ease_inout_back1 = move_ease_inout1->reverse();
144 auto move_ease_inout2 = EaseInOut::create(move->clone(), 1.35f);
145 auto move_ease_inout_back2 = move_ease_inout2->reverse();
147 auto move_ease_inout3 = EaseInOut::create(move->clone(), 1.0f);
148 auto move_ease_inout_back3 = move_ease_inout3->reverse();
150 auto delay = DelayTime::create(0.25f);
152 auto seq1 = Sequence::create( move_ease_inout1, delay, move_ease_inout_back1, delay->clone(),
nullptr);
153 auto seq2 = Sequence::create( move_ease_inout2, delay->clone(), move_ease_inout_back2, delay->clone(),
nullptr);
154 auto seq3 = Sequence::create( move_ease_inout3, delay->clone(), move_ease_inout_back3, delay->clone(),
nullptr);
156 _tamara->runAction(RepeatForever::create(seq1));
157 _kathia->runAction(RepeatForever::create(seq2));
158 _grossini->runAction(RepeatForever::create(seq3));
164 return "EaseInOut and rates";
178 auto move_back = move->reverse();
180 auto move_ease_in = EaseExponentialIn::create(move->clone());
181 auto move_ease_in_back = move_ease_in->reverse();
183 auto move_ease_out = EaseExponentialOut::create(move->clone());
184 auto move_ease_out_back = move_ease_out->reverse();
186 auto delay = DelayTime::create(0.25f);
188 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
189 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
190 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
193 _grossini->runAction( RepeatForever::create(seq1));
194 _tamara->runAction( RepeatForever::create(seq2));
195 _kathia->runAction( RepeatForever::create(seq3));
201 return "ExpIn - ExpOut actions";
214 auto move_back = move->reverse();
216 auto move_ease = EaseExponentialInOut::create(move->clone() );
217 auto move_ease_back = move_ease->reverse();
219 auto delay = DelayTime::create(0.25f);
221 auto seq1 = Sequence::create( move, delay, move_back, delay->clone(),
nullptr);
222 auto seq2 = Sequence::create( move_ease, delay, move_ease_back, delay->clone(),
nullptr);
226 _grossini->runAction( RepeatForever::create(seq1));
227 _tamara->runAction( RepeatForever::create(seq2));
234 return "EaseExponentialInOut action";
247 auto move_back = move->reverse();
249 auto move_ease_in = EaseSineIn::create(move->clone() );
250 auto move_ease_in_back = move_ease_in->reverse();
252 auto move_ease_out = EaseSineOut::create(move->clone() );
253 auto move_ease_out_back = move_ease_out->reverse();
255 auto delay = DelayTime::create(0.25f);
257 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
258 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
259 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
262 _grossini->runAction( RepeatForever::create(seq1));
263 _tamara->runAction( RepeatForever::create(seq2));
264 _kathia->runAction( RepeatForever::create(seq3));
271 return "EaseSineIn - EaseSineOut";
284 auto move_back = move->reverse();
286 auto move_ease = EaseSineInOut::create(move->clone() );
287 auto move_ease_back = move_ease->reverse();
289 auto delay = DelayTime::create(0.25f);
291 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
292 auto seq2 = Sequence::create(move_ease, delay->clone(), move_ease_back, delay->clone(),
nullptr);
296 _grossini->runAction( RepeatForever::create(seq1));
297 _tamara->runAction( RepeatForever::create(seq2));
303 return "EaseSineInOut action";
316 auto move_back = move->reverse();
318 auto move_ease_in = EaseElasticIn::create(move->clone() );
319 auto move_ease_in_back = move_ease_in->reverse();
321 auto move_ease_out = EaseElasticOut::create(move->clone() );
322 auto move_ease_out_back = move_ease_out->reverse();
324 auto delay = DelayTime::create(0.25f);
326 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
327 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
328 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
330 _grossini->runAction( RepeatForever::create(seq1));
331 _tamara->runAction( RepeatForever::create(seq2));
332 _kathia->runAction( RepeatForever::create(seq3));
338 return "Elastic In - Out actions";
353 auto move_ease_inout1 = EaseElasticInOut::create(move->clone(), 0.3f);
354 auto move_ease_inout_back1 = move_ease_inout1->reverse();
356 auto move_ease_inout2 = EaseElasticInOut::create(move->clone(), 0.45f);
357 auto move_ease_inout_back2 = move_ease_inout2->reverse();
359 auto move_ease_inout3 = EaseElasticInOut::create(move->clone(), 0.6f);
360 auto move_ease_inout_back3 = move_ease_inout3->reverse();
362 auto delay = DelayTime::create(0.25f);
364 auto seq1 = Sequence::create(move_ease_inout1, delay, move_ease_inout_back1, delay->clone(),
nullptr);
365 auto seq2 = Sequence::create(move_ease_inout2, delay->clone(), move_ease_inout_back2, delay->clone(),
nullptr);
366 auto seq3 = Sequence::create(move_ease_inout3, delay->clone(), move_ease_inout_back3, delay->clone(),
nullptr);
368 _tamara->runAction( RepeatForever::create(seq1));
369 _kathia->runAction( RepeatForever::create(seq2));
370 _grossini->runAction( RepeatForever::create(seq3));
376 return "EaseElasticInOut action";
391 auto move_back = move->reverse();
393 auto move_ease_in = EaseBounceIn::create(move->clone() );
394 auto move_ease_in_back = move_ease_in->reverse();
396 auto move_ease_out = EaseBounceOut::create(move->clone() );
397 auto move_ease_out_back = move_ease_out->reverse();
399 auto delay = DelayTime::create(0.25f);
401 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
402 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
403 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
405 _grossini->runAction( RepeatForever::create(seq1));
406 _tamara->runAction( RepeatForever::create(seq2));
407 _kathia->runAction( RepeatForever::create(seq3));
413 return "Bounce In - Out actions";
428 auto move_back = move->reverse();
430 auto move_ease = EaseBounceInOut::create(move->clone() );
431 auto move_ease_back = move_ease->reverse();
433 auto delay = DelayTime::create(0.25f);
435 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
436 auto seq2 = Sequence::create(move_ease, delay->clone(), move_ease_back, delay->clone(),
nullptr);
440 _grossini->runAction( RepeatForever::create(seq1));
441 _tamara->runAction( RepeatForever::create(seq2));
447 return "EaseBounceInOut action";
461 auto move_back = move->reverse();
463 auto move_ease_in = EaseBackIn::create(move->clone());
464 auto move_ease_in_back = move_ease_in->reverse();
466 auto move_ease_out = EaseBackOut::create( move->clone());
467 auto move_ease_out_back = move_ease_out->reverse();
469 auto delay = DelayTime::create(0.25f);
471 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
472 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
473 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
475 _grossini->runAction(RepeatForever::create(seq1));
476 _tamara->runAction(RepeatForever::create(seq2));
477 _kathia->runAction(RepeatForever::create(seq3));
483 return "Back In - Out actions";
497 auto move_back = move->reverse();
499 auto move_ease = EaseBackInOut::create(move->clone() );
500 auto move_ease_back = move_ease->reverse();
502 auto delay = DelayTime::create(0.25f);
504 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
505 auto seq2 = Sequence::create(move_ease, delay->clone(), move_ease_back, delay->clone(),
nullptr);
509 _grossini->runAction( RepeatForever::create(seq1));
510 _tamara->runAction( RepeatForever::create(seq2));
516 return "EaseBackInOut action";
529 auto s = Director::getInstance()->getWinSize();
539 ccBezierConfig bezier;
540 bezier.controlPoint_1 = Vec2(0.0f, s.height/2);
541 bezier.controlPoint_2 = Vec2(300.0f, -s.height/2);
542 bezier.endPosition = Vec2(300.0f,100.0f);
544 auto bezierForward = BezierBy::create(3, bezier);
545 auto bezierEaseForward = EaseBezierAction::create(bezierForward);
546 bezierEaseForward->setBezierParamer(0.5f, 0.5f, 1.0f, 1.0f);
548 auto bezierEaseBack = bezierEaseForward->reverse();
549 auto rep = RepeatForever::create(Sequence::create( bezierEaseForward, bezierEaseBack,
nullptr));
554 ccBezierConfig bezier2;
555 bezier2.controlPoint_1 = Vec2(100.0f, s.height/2);
556 bezier2.controlPoint_2 = Vec2(200.0f, -s.height/2);
557 bezier2.endPosition = Vec2(240.0f,160.0f);
559 auto bezierTo1 = BezierTo::create(2, bezier2);
560 auto bezierEaseTo1 = EaseBezierAction::create(bezierTo1);
561 bezierEaseTo1->setBezierParamer(0.5f, 0.5f, 1.0f, 1.0f);
564 _kathia->setPosition(400.0f,160.0f);
565 auto bezierTo2 = BezierTo::create(2, bezier2);
566 auto bezierEaseTo2 = EaseBezierAction::create(bezierTo2);
567 bezierEaseTo2->setBezierParamer(0.0f, 0.5f, -5.0f, 1.0f);
571 _tamara->runAction(bezierEaseTo1);
572 _kathia->runAction(bezierEaseTo2);
578 return "SpriteEaseBezier action";
592 auto move_back = move->reverse();
594 auto move_ease_in = EaseQuadraticActionIn::create(move->clone() );
595 auto move_ease_in_back = move_ease_in->reverse();
597 auto move_ease_out = EaseQuadraticActionOut::create(move->clone() );
598 auto move_ease_out_back = move_ease_out->reverse();
600 auto delay = DelayTime::create(0.25f);
602 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
603 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
604 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
606 _grossini->runAction( RepeatForever::create(seq1));
607 _tamara->runAction( RepeatForever::create(seq2));
608 _kathia->runAction( RepeatForever::create(seq3));
613 return "SpriteEaseQuadratic action";
627 auto move_back = move->reverse();
629 auto move_ease = EaseQuadraticActionInOut::create(move->clone() );
630 auto move_ease_back = move_ease->reverse();
632 auto delay = DelayTime::create(0.25f);
634 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
635 auto seq2 = Sequence::create(move_ease, delay->clone(), move_ease_back, delay->clone(),
nullptr);
639 _grossini->runAction( RepeatForever::create(seq1));
640 _tamara->runAction( RepeatForever::create(seq2));
645 return "SpriteEaseQuadraticInOut action";
660 auto move_back = move->reverse();
662 auto move_ease_in = EaseQuarticActionIn::create(move->clone() );
663 auto move_ease_in_back = move_ease_in->reverse();
665 auto move_ease_out = EaseQuarticActionOut::create(move->clone() );
666 auto move_ease_out_back = move_ease_out->reverse();
668 auto delay = DelayTime::create(0.25f);
670 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
671 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
672 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
674 _grossini->runAction( RepeatForever::create(seq1));
675 _tamara->runAction( RepeatForever::create(seq2));
676 _kathia->runAction( RepeatForever::create(seq3));
681 return "SpriteEaseQuartic action";
695 auto move_back = move->reverse();
697 auto move_ease = EaseQuarticActionInOut::create(move->clone() );
698 auto move_ease_back = move_ease->reverse();
700 auto delay = DelayTime::create(0.25f);
702 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
703 auto seq2 = Sequence::create(move_ease, delay->clone(), move_ease_back, delay->clone(),
nullptr);
707 _grossini->runAction( RepeatForever::create(seq1));
708 _tamara->runAction( RepeatForever::create(seq2));
713 return "SpriteEaseQuarticInOut action";
727 auto move_back = move->reverse();
729 auto move_ease_in = EaseQuinticActionIn::create(move->clone() );
730 auto move_ease_in_back = move_ease_in->reverse();
732 auto move_ease_out = EaseQuinticActionOut::create(move->clone() );
733 auto move_ease_out_back = move_ease_out->reverse();
735 auto delay = DelayTime::create(0.25f);
737 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
738 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
739 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
741 _grossini->runAction( RepeatForever::create(seq1));
742 _tamara->runAction( RepeatForever::create(seq2));
743 _kathia->runAction( RepeatForever::create(seq3));
748 return "SpriteEaseQuintic action";
763 auto move_back = move->reverse();
765 auto move_ease = EaseQuinticActionInOut::create(move->clone() );
766 auto move_ease_back = move_ease->reverse();
768 auto delay = DelayTime::create(0.25f);
770 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
771 auto seq2 = Sequence::create(move_ease, delay->clone(), move_ease_back, delay->clone(),
nullptr);
775 _grossini->runAction( RepeatForever::create(seq1));
776 _tamara->runAction( RepeatForever::create(seq2));
781 return "SpriteEaseQuinticInOut action";
795 auto move_back = move->reverse();
797 auto move_ease_in = EaseCircleActionIn::create(move->clone() );
798 auto move_ease_in_back = move_ease_in->reverse();
800 auto move_ease_out = EaseCircleActionOut::create(move->clone() );
801 auto move_ease_out_back = move_ease_out->reverse();
803 auto delay = DelayTime::create(0.25f);
805 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
806 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
807 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
809 _grossini->runAction( RepeatForever::create(seq1));
810 _tamara->runAction( RepeatForever::create(seq2));
811 _kathia->runAction( RepeatForever::create(seq3));
816 return "SpriteEaseCircle action";
831 auto move_back = move->reverse();
833 auto move_ease = EaseCircleActionInOut::create(move->clone() );
834 auto move_ease_back = move_ease->reverse();
836 auto delay = DelayTime::create(0.25f);
838 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
839 auto seq2 = Sequence::create(move_ease, delay->clone(), move_ease_back, delay->clone(),
nullptr);
843 _grossini->runAction( RepeatForever::create(seq1));
844 _tamara->runAction( RepeatForever::create(seq2));
849 return "SpriteEaseCircleInOut action";
863 auto move_back = move->reverse();
865 auto move_ease_in = EaseCubicActionIn::create(move->clone() );
866 auto move_ease_in_back = move_ease_in->reverse();
868 auto move_ease_out = EaseCubicActionOut::create(move->clone() );
869 auto move_ease_out_back = move_ease_out->reverse();
871 auto delay = DelayTime::create(0.25f);
873 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
874 auto seq2 = Sequence::create(move_ease_in, delay->clone(), move_ease_in_back, delay->clone(),
nullptr);
875 auto seq3 = Sequence::create(move_ease_out, delay->clone(), move_ease_out_back, delay->clone(),
nullptr);
877 _grossini->runAction( RepeatForever::create(seq1));
878 _tamara->runAction( RepeatForever::create(seq2));
879 _kathia->runAction( RepeatForever::create(seq3));
884 return "SpriteEaseCubic action";
899 auto move_back = move->reverse();
901 auto move_ease = EaseCubicActionInOut::create(move->clone() );
902 auto move_ease_back = move_ease->reverse();
904 auto delay = DelayTime::create(0.25f);
906 auto seq1 = Sequence::create(move, delay, move_back, delay->clone(),
nullptr);
907 auto seq2 = Sequence::create(move_ease, delay->clone(), move_ease_back, delay->clone(),
nullptr);
911 _grossini->runAction( RepeatForever::create(seq1));
912 _tamara->runAction( RepeatForever::create(seq2));
917 return "SpriteEaseCubicInOut action";
929 auto s = Director::getInstance()->getWinSize();
932 auto jump1 = JumpBy::create(4.0f, Vec2(-s.width+80, 0.0f), 100.0f, 4);
933 auto jump2 = jump1->reverse();
934 auto rot1 = RotateBy::create(4.0f, 360*2.0f);
935 auto rot2 = rot1->reverse();
937 auto seq3_1 = Sequence::create(jump2, jump1,
nullptr);
938 auto seq3_2 = Sequence::create( rot1, rot2,
nullptr);
939 auto spawn = Spawn::create(seq3_1, seq3_2,
nullptr);
940 auto action = Speed::create(RepeatForever::create(spawn), 1.0f);
943 auto action2 = action->clone();
944 auto action3 = action->clone();
962 action1->setSpeed( CCRANDOM_MINUS1_1() * 2 );
963 action2->setSpeed( CCRANDOM_MINUS1_1() * 2 );
964 action3->setSpeed( CCRANDOM_MINUS1_1() * 2 );
969 return "Speed action";
978ActionsEaseTests::ActionsEaseTests()
#define ADD_TEST_CASE(__className__)
cocos2d::Sprite * _kathia
cocos2d::Sprite * _tamara
cocos2d::Sprite * _grossini
void centerSprites(unsigned int numberOfSprites)
virtual std::string subtitle() const override
virtual void onEnter() override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string title() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
void testStopAction(float dt)
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual void onEnter() override
static cocos2d::Rect getVisibleRect()
static cocos2d::Vec2 bottom()
static cocos2d::Vec2 left()
static cocos2d::Vec2 right()
static const char s_pathSister1[]
static const char s_pathSister2[]
static const char s_pathGrossini[]