PuzzleSDK
ActionsEaseTest.cpp
浏览该文件的文档.
1/****************************************************************************
2 Copyright (c) 2012 cocos2d-x.org
3 Copyright (c) 2013-2016 Chukong Technologies Inc.
4 Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
5
6 http://www.cocos2d-x.org
7
8 Permission is hereby granted, free of charge, to any person obtaining a copy
9 of this software and associated documentation files (the "Software"), to deal
10 in the Software without restriction, including without limitation the rights
11 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 copies of the Software, and to permit persons to whom the Software is
13 furnished to do so, subject to the following conditions:
14
15 The above copyright notice and this permission notice shall be included in
16 all copies or substantial portions of the Software.
17
18 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 THE SOFTWARE.
25 ****************************************************************************/
26
27#include "ActionsEaseTest.h"
28#include "../testResource.h"
29
31
32enum {
36};
37
38
39//------------------------------------------------------------------
40//
41// SpriteDemo
42//
43//------------------------------------------------------------------
44void EaseSpriteDemo::centerSprites(unsigned int numberOfSprites)
45{
46 auto s = Director::getInstance()->getWinSize();
47
48 if( numberOfSprites == 0 )
49 {
50 _tamara->setVisible(false);
51 _kathia->setVisible(false);
52 _grossini->setVisible(false);
53 }
54 else if ( numberOfSprites == 1 )
55 {
56 _tamara->setVisible(false);
57 _kathia->setVisible(false);
58 _grossini->setPosition(s.width/2, s.height/2);
59 }
60 else if( numberOfSprites == 2 )
61 {
62 _kathia->setPosition(s.width/3, s.height/2);
63 _tamara->setPosition(2*s.width/3, s.height/2);
64 _grossini->setVisible(false);
65 }
66 else if( numberOfSprites == 3 )
67 {
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);
71 }
72}
73
74
75//------------------------------------------------------------------
76//
77// SpriteEase
78//
79//------------------------------------------------------------------
80
82{
84
85 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130,0.0f));
86 auto move_back = move->reverse();
87
88 auto move_ease_in = EaseIn::create(move->clone(), 2.5f);
89 auto move_ease_in_back = move_ease_in->reverse();
90
91 auto move_ease_out = EaseOut::create(move->clone(), 2.5f);
92 auto move_ease_out_back = move_ease_out->reverse();
93
94 auto delay = DelayTime::create(0.25f);
95
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);
99
100
101 auto a2 = _grossini->runAction(RepeatForever::create(seq1));
102 a2->setTag(1);
103
104 auto a1 = _tamara->runAction(RepeatForever::create(seq2));
105 a1->setTag(1);
106
107 auto a = _kathia->runAction(RepeatForever::create(seq3));
108 a->setTag(1);
109
110 schedule(CC_SCHEDULE_SELECTOR(SpriteEase::testStopAction), 6.25f);
111}
112
113
115{
116 unschedule(CC_SCHEDULE_SELECTOR(SpriteEase::testStopAction));
117 _tamara->stopActionByTag(1);
118 _kathia->stopActionByTag(1);
119 _grossini->stopActionByTag(1);
120}
121
122std::string SpriteEase::subtitle() const
123{
124 return "EaseIn - EaseOut - Stop";
125}
126
127
128//------------------------------------------------------------------
129//
130// SpriteEaseInOut
131//
132//------------------------------------------------------------------
133
135{
137
138 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
139// id move_back = move->reverse();
140
141 auto move_ease_inout1 = EaseInOut::create(move->clone(), 0.65f);
142 auto move_ease_inout_back1 = move_ease_inout1->reverse();
143
144 auto move_ease_inout2 = EaseInOut::create(move->clone(), 1.35f);
145 auto move_ease_inout_back2 = move_ease_inout2->reverse();
146
147 auto move_ease_inout3 = EaseInOut::create(move->clone(), 1.0f);
148 auto move_ease_inout_back3 = move_ease_inout3->reverse();
149
150 auto delay = DelayTime::create(0.25f);
151
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);
155
156 _tamara->runAction(RepeatForever::create(seq1));
157 _kathia->runAction(RepeatForever::create(seq2));
158 _grossini->runAction(RepeatForever::create(seq3));
159}
160
161
162std::string SpriteEaseInOut::subtitle() const
163{
164 return "EaseInOut and rates";
165}
166
167//------------------------------------------------------------------
168//
169// SpriteEaseExponential
170//
171//------------------------------------------------------------------
172
174{
176
177 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
178 auto move_back = move->reverse();
179
180 auto move_ease_in = EaseExponentialIn::create(move->clone());
181 auto move_ease_in_back = move_ease_in->reverse();
182
183 auto move_ease_out = EaseExponentialOut::create(move->clone());
184 auto move_ease_out_back = move_ease_out->reverse();
185
186 auto delay = DelayTime::create(0.25f);
187
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);
191
192
193 _grossini->runAction( RepeatForever::create(seq1));
194 _tamara->runAction( RepeatForever::create(seq2));
195 _kathia->runAction( RepeatForever::create(seq3));
196}
197
198
200{
201 return "ExpIn - ExpOut actions";
202}
203//------------------------------------------------------------------
204//
205// SpriteEaseExponentialInOut
206//
207//------------------------------------------------------------------
208
210{
212
213 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
214 auto move_back = move->reverse();
215
216 auto move_ease = EaseExponentialInOut::create(move->clone() );
217 auto move_ease_back = move_ease->reverse(); //--> reverse()
218
219 auto delay = DelayTime::create(0.25f);
220
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);
223
224 this->positionForTwo();
225
226 _grossini->runAction( RepeatForever::create(seq1));
227 _tamara->runAction( RepeatForever::create(seq2));
228
229}
230
231
233{
234 return "EaseExponentialInOut action";
235}
236//------------------------------------------------------------------
237//
238// SpriteEaseSine
239//
240//------------------------------------------------------------------
241
243{
245
246 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
247 auto move_back = move->reverse();
248
249 auto move_ease_in = EaseSineIn::create(move->clone() );
250 auto move_ease_in_back = move_ease_in->reverse();
251
252 auto move_ease_out = EaseSineOut::create(move->clone() );
253 auto move_ease_out_back = move_ease_out->reverse();
254
255 auto delay = DelayTime::create(0.25f);
256
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);
260
261
262 _grossini->runAction( RepeatForever::create(seq1));
263 _tamara->runAction( RepeatForever::create(seq2));
264 _kathia->runAction( RepeatForever::create(seq3));
265
266}
267
268
269std::string SpriteEaseSine::subtitle() const
270{
271 return "EaseSineIn - EaseSineOut";
272}
273//------------------------------------------------------------------
274//
275// SpriteEaseSineInOut
276//
277//------------------------------------------------------------------
278
280{
282
283 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
284 auto move_back = move->reverse();
285
286 auto move_ease = EaseSineInOut::create(move->clone() );
287 auto move_ease_back = move_ease->reverse();
288
289 auto delay = DelayTime::create(0.25f);
290
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);
293
294 this->positionForTwo();
295
296 _grossini->runAction( RepeatForever::create(seq1));
297 _tamara->runAction( RepeatForever::create(seq2));
298}
299
300
302{
303 return "EaseSineInOut action";
304}
305//------------------------------------------------------------------
306//
307// SpriteEaseElastic
308//
309//------------------------------------------------------------------
310
312{
314
315 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
316 auto move_back = move->reverse();
317
318 auto move_ease_in = EaseElasticIn::create(move->clone() );
319 auto move_ease_in_back = move_ease_in->reverse();
320
321 auto move_ease_out = EaseElasticOut::create(move->clone() );
322 auto move_ease_out_back = move_ease_out->reverse();
323
324 auto delay = DelayTime::create(0.25f);
325
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);
329
330 _grossini->runAction( RepeatForever::create(seq1));
331 _tamara->runAction( RepeatForever::create(seq2));
332 _kathia->runAction( RepeatForever::create(seq3));
333}
334
335
337{
338 return "Elastic In - Out actions";
339}
340
341//------------------------------------------------------------------
342//
343// SpriteEaseElasticInOut
344//
345//------------------------------------------------------------------
346
348{
350
351 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
352
353 auto move_ease_inout1 = EaseElasticInOut::create(move->clone(), 0.3f);
354 auto move_ease_inout_back1 = move_ease_inout1->reverse();
355
356 auto move_ease_inout2 = EaseElasticInOut::create(move->clone(), 0.45f);
357 auto move_ease_inout_back2 = move_ease_inout2->reverse();
358
359 auto move_ease_inout3 = EaseElasticInOut::create(move->clone(), 0.6f);
360 auto move_ease_inout_back3 = move_ease_inout3->reverse();
361
362 auto delay = DelayTime::create(0.25f);
363
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);
367
368 _tamara->runAction( RepeatForever::create(seq1));
369 _kathia->runAction( RepeatForever::create(seq2));
370 _grossini->runAction( RepeatForever::create(seq3));
371}
372
373
375{
376 return "EaseElasticInOut action";
377}
378
379
380//------------------------------------------------------------------
381//
382// SpriteEaseBounce
383//
384//------------------------------------------------------------------
385
387{
389
390 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
391 auto move_back = move->reverse();
392
393 auto move_ease_in = EaseBounceIn::create(move->clone() );
394 auto move_ease_in_back = move_ease_in->reverse();
395
396 auto move_ease_out = EaseBounceOut::create(move->clone() );
397 auto move_ease_out_back = move_ease_out->reverse();
398
399 auto delay = DelayTime::create(0.25f);
400
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);
404
405 _grossini->runAction( RepeatForever::create(seq1));
406 _tamara->runAction( RepeatForever::create(seq2));
407 _kathia->runAction( RepeatForever::create(seq3));
408}
409
410
411std::string SpriteEaseBounce::subtitle() const
412{
413 return "Bounce In - Out actions";
414}
415
416
417//------------------------------------------------------------------
418//
419// SpriteEaseBounceInOut
420//
421//------------------------------------------------------------------
422
424{
426
427 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
428 auto move_back = move->reverse();
429
430 auto move_ease = EaseBounceInOut::create(move->clone() );
431 auto move_ease_back = move_ease->reverse();
432
433 auto delay = DelayTime::create(0.25f);
434
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);
437
438 this->positionForTwo();
439
440 _grossini->runAction( RepeatForever::create(seq1));
441 _tamara->runAction( RepeatForever::create(seq2));
442}
443
444
446{
447 return "EaseBounceInOut action";
448}
449
450//------------------------------------------------------------------
451//
452// SpriteEaseBack
453//
454//------------------------------------------------------------------
455
457{
459
460 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
461 auto move_back = move->reverse();
462
463 auto move_ease_in = EaseBackIn::create(move->clone());
464 auto move_ease_in_back = move_ease_in->reverse();
465
466 auto move_ease_out = EaseBackOut::create( move->clone());
467 auto move_ease_out_back = move_ease_out->reverse();
468
469 auto delay = DelayTime::create(0.25f);
470
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);
474
475 _grossini->runAction(RepeatForever::create(seq1));
476 _tamara->runAction(RepeatForever::create(seq2));
477 _kathia->runAction(RepeatForever::create(seq3));
478}
479
480
481std::string SpriteEaseBack::subtitle() const
482{
483 return "Back In - Out actions";
484}
485
486//------------------------------------------------------------------
487//
488// SpriteEaseBackInOut
489//
490//------------------------------------------------------------------
491
493{
495
496 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
497 auto move_back = move->reverse();
498
499 auto move_ease = EaseBackInOut::create(move->clone() );
500 auto move_ease_back = move_ease->reverse();
501
502 auto delay = DelayTime::create(0.25f);
503
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);
506
507 this->positionForTwo();
508
509 _grossini->runAction( RepeatForever::create(seq1));
510 _tamara->runAction( RepeatForever::create(seq2));
511}
512
513
515{
516 return "EaseBackInOut action";
517}
518
519//------------------------------------------------------------------
520//
521// SpriteEaseBezier
522//
523//------------------------------------------------------------------
524
526{
528
529 auto s = Director::getInstance()->getWinSize();
530
531 //
532 // startPosition can be any coordinate, but since the movement
533 // is relative to the Bezier curve, make it (0,0)
534 //
535
536 centerSprites(3);
537
538 // sprite 1
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);
543
544 auto bezierForward = BezierBy::create(3, bezier);
545 auto bezierEaseForward = EaseBezierAction::create(bezierForward);
546 bezierEaseForward->setBezierParamer(0.5f, 0.5f, 1.0f, 1.0f);
547
548 auto bezierEaseBack = bezierEaseForward->reverse();
549 auto rep = RepeatForever::create(Sequence::create( bezierEaseForward, bezierEaseBack, nullptr));
550
551
552 // sprite 2
553 _tamara->setPosition(80,160);
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);
558
559 auto bezierTo1 = BezierTo::create(2, bezier2);
560 auto bezierEaseTo1 = EaseBezierAction::create(bezierTo1);
561 bezierEaseTo1->setBezierParamer(0.5f, 0.5f, 1.0f, 1.0f);
562
563 // sprite 3
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);
568
569
570 _grossini->runAction( rep);
571 _tamara->runAction(bezierEaseTo1);
572 _kathia->runAction(bezierEaseTo2);
573
574}
575
577{
578 return "SpriteEaseBezier action";
579}
580
581//------------------------------------------------------------------
582//
583// SpriteEaseQuadratic
584//
585//------------------------------------------------------------------
586
588{
590
591 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
592 auto move_back = move->reverse();
593
594 auto move_ease_in = EaseQuadraticActionIn::create(move->clone() );
595 auto move_ease_in_back = move_ease_in->reverse();
596
597 auto move_ease_out = EaseQuadraticActionOut::create(move->clone() );
598 auto move_ease_out_back = move_ease_out->reverse();
599
600 auto delay = DelayTime::create(0.25f);
601
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);
605
606 _grossini->runAction( RepeatForever::create(seq1));
607 _tamara->runAction( RepeatForever::create(seq2));
608 _kathia->runAction( RepeatForever::create(seq3));
609}
610
612{
613 return "SpriteEaseQuadratic action";
614}
615
616//------------------------------------------------------------------
617//
618// SpriteEaseQuadraticInOut
619//
620//------------------------------------------------------------------
621
623{
625
626 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
627 auto move_back = move->reverse();
628
629 auto move_ease = EaseQuadraticActionInOut::create(move->clone() );
630 auto move_ease_back = move_ease->reverse();
631
632 auto delay = DelayTime::create(0.25f);
633
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);
636
637 this->positionForTwo();
638
639 _grossini->runAction( RepeatForever::create(seq1));
640 _tamara->runAction( RepeatForever::create(seq2));
641}
642
644{
645 return "SpriteEaseQuadraticInOut action";
646}
647
648
649//------------------------------------------------------------------
650//
651// SpriteEaseQuartic
652//
653//------------------------------------------------------------------
654
656{
658
659 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
660 auto move_back = move->reverse();
661
662 auto move_ease_in = EaseQuarticActionIn::create(move->clone() );
663 auto move_ease_in_back = move_ease_in->reverse();
664
665 auto move_ease_out = EaseQuarticActionOut::create(move->clone() );
666 auto move_ease_out_back = move_ease_out->reverse();
667
668 auto delay = DelayTime::create(0.25f);
669
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);
673
674 _grossini->runAction( RepeatForever::create(seq1));
675 _tamara->runAction( RepeatForever::create(seq2));
676 _kathia->runAction( RepeatForever::create(seq3));
677}
678
680{
681 return "SpriteEaseQuartic action";
682}
683
684//------------------------------------------------------------------
685//
686// SpriteEaseQuarticInOut
687//
688//------------------------------------------------------------------
689
691{
693
694 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
695 auto move_back = move->reverse();
696
697 auto move_ease = EaseQuarticActionInOut::create(move->clone() );
698 auto move_ease_back = move_ease->reverse();
699
700 auto delay = DelayTime::create(0.25f);
701
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);
704
705 this->positionForTwo();
706
707 _grossini->runAction( RepeatForever::create(seq1));
708 _tamara->runAction( RepeatForever::create(seq2));
709}
710
712{
713 return "SpriteEaseQuarticInOut action";
714}
715
716//------------------------------------------------------------------
717//
718// SpriteEaseQuintic
719//
720//------------------------------------------------------------------
721
723{
725
726 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
727 auto move_back = move->reverse();
728
729 auto move_ease_in = EaseQuinticActionIn::create(move->clone() );
730 auto move_ease_in_back = move_ease_in->reverse();
731
732 auto move_ease_out = EaseQuinticActionOut::create(move->clone() );
733 auto move_ease_out_back = move_ease_out->reverse();
734
735 auto delay = DelayTime::create(0.25f);
736
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);
740
741 _grossini->runAction( RepeatForever::create(seq1));
742 _tamara->runAction( RepeatForever::create(seq2));
743 _kathia->runAction( RepeatForever::create(seq3));
744}
745
747{
748 return "SpriteEaseQuintic action";
749}
750
751
752//------------------------------------------------------------------
753//
754// SpriteEaseQuinticInOut
755//
756//------------------------------------------------------------------
757
759{
761
762 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
763 auto move_back = move->reverse();
764
765 auto move_ease = EaseQuinticActionInOut::create(move->clone() );
766 auto move_ease_back = move_ease->reverse();
767
768 auto delay = DelayTime::create(0.25f);
769
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);
772
773 this->positionForTwo();
774
775 _grossini->runAction( RepeatForever::create(seq1));
776 _tamara->runAction( RepeatForever::create(seq2));
777}
778
780{
781 return "SpriteEaseQuinticInOut action";
782}
783
784//------------------------------------------------------------------
785//
786// SpriteEaseCircle
787//
788//------------------------------------------------------------------
789
791{
793
794 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
795 auto move_back = move->reverse();
796
797 auto move_ease_in = EaseCircleActionIn::create(move->clone() );
798 auto move_ease_in_back = move_ease_in->reverse();
799
800 auto move_ease_out = EaseCircleActionOut::create(move->clone() );
801 auto move_ease_out_back = move_ease_out->reverse();
802
803 auto delay = DelayTime::create(0.25f);
804
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);
808
809 _grossini->runAction( RepeatForever::create(seq1));
810 _tamara->runAction( RepeatForever::create(seq2));
811 _kathia->runAction( RepeatForever::create(seq3));
812}
813
815{
816 return "SpriteEaseCircle action";
817}
818
819
820//------------------------------------------------------------------
821//
822// SpriteEaseCircleInOut
823//
824//------------------------------------------------------------------
825
827{
829
830 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
831 auto move_back = move->reverse();
832
833 auto move_ease = EaseCircleActionInOut::create(move->clone() );
834 auto move_ease_back = move_ease->reverse();
835
836 auto delay = DelayTime::create(0.25f);
837
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);
840
841 this->positionForTwo();
842
843 _grossini->runAction( RepeatForever::create(seq1));
844 _tamara->runAction( RepeatForever::create(seq2));
845}
846
848{
849 return "SpriteEaseCircleInOut action";
850}
851
852//------------------------------------------------------------------
853//
854// SpriteEaseCubic
855//
856//------------------------------------------------------------------
857
859{
861
862 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
863 auto move_back = move->reverse();
864
865 auto move_ease_in = EaseCubicActionIn::create(move->clone() );
866 auto move_ease_in_back = move_ease_in->reverse();
867
868 auto move_ease_out = EaseCubicActionOut::create(move->clone() );
869 auto move_ease_out_back = move_ease_out->reverse();
870
871 auto delay = DelayTime::create(0.25f);
872
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);
876
877 _grossini->runAction( RepeatForever::create(seq1));
878 _tamara->runAction( RepeatForever::create(seq2));
879 _kathia->runAction( RepeatForever::create(seq3));
880}
881
883{
884 return "SpriteEaseCubic action";
885}
886
887
888//------------------------------------------------------------------
889//
890// SpriteEaseCubicInOut
891//
892//------------------------------------------------------------------
893
895{
897
898 auto move = MoveBy::create(3, Vec2(VisibleRect::right().x-130, 0.0f));
899 auto move_back = move->reverse();
900
901 auto move_ease = EaseCubicActionInOut::create(move->clone() );
902 auto move_ease_back = move_ease->reverse();
903
904 auto delay = DelayTime::create(0.25f);
905
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);
908
909 this->positionForTwo();
910
911 _grossini->runAction( RepeatForever::create(seq1));
912 _tamara->runAction( RepeatForever::create(seq2));
913}
914
916{
917 return "SpriteEaseCubicInOut action";
918}
919//------------------------------------------------------------------
920//
921// SpeedTest
922//
923//------------------------------------------------------------------
924
926{
928
929 auto s = Director::getInstance()->getWinSize();
930
931 // rotate and jump
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();
936
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);
941 action->setTag(kTagAction1);
942
943 auto action2 = action->clone();
944 auto action3 = action->clone();
945
946 action2->setTag(kTagAction1);
947 action3->setTag(kTagAction1);
948
949 _grossini->runAction(action2);
950 _tamara->runAction(action3);
951 _kathia->runAction(action);
952
953 this->schedule(CC_SCHEDULE_SELECTOR(SpeedTest::altertime), 1.0f);//:@selector(altertime:) interval:1.0f];
954}
955
957{
958 auto action1 = static_cast<Speed*>(_grossini->getActionByTag(kTagAction1));
959 auto action2 = static_cast<Speed*>(_tamara->getActionByTag(kTagAction1));
960 auto action3 = static_cast<Speed*>(_kathia->getActionByTag(kTagAction1));
961
962 action1->setSpeed( CCRANDOM_MINUS1_1() * 2 );
963 action2->setSpeed( CCRANDOM_MINUS1_1() * 2 );
964 action3->setSpeed( CCRANDOM_MINUS1_1() * 2 );
965}
966
967std::string SpeedTest::subtitle() const
968{
969 return "Speed action";
970}
971
972//------------------------------------------------------------------
973//
974// EaseSpriteDemo
975//
976//------------------------------------------------------------------
977
978ActionsEaseTests::ActionsEaseTests()
979{
1004}
1005
1007{
1008}
1009
1011{
1012 _grossini->release();
1013 _tamara->release();
1014 _kathia->release();
1015}
1016
1018{
1019 _grossini->setPosition(VisibleRect::left().x+60, VisibleRect::bottom().y + VisibleRect::getVisibleRect().size.height*1/5);
1020 _tamara->setPosition(VisibleRect::left().x+60, VisibleRect::bottom().y + VisibleRect::getVisibleRect().size.height*4/5);
1021 _kathia->setVisible(false);
1022}
1023
1024
1025std::string EaseSpriteDemo::subtitle() const
1026{
1027 return "No title";
1028}
1029
1031{
1033
1034 // Or you can create an sprite using a filename. PNG and BMP files are supported.
1035 _grossini = Sprite::create(s_pathGrossini); _grossini->retain();
1036 _tamara = Sprite::create(s_pathSister1); _tamara->retain();
1037 _kathia = Sprite::create(s_pathSister2); _kathia->retain();
1038
1039 addChild( _grossini, 3);
1040 addChild( _kathia, 2);
1041 addChild( _tamara, 1);
1042
1043 _grossini->setPosition(VisibleRect::left().x + 60, VisibleRect::bottom().y+VisibleRect::getVisibleRect().size.height*1/5);
1044 _kathia->setPosition(VisibleRect::left().x + 60, VisibleRect::bottom().y+VisibleRect::getVisibleRect().size.height*2.5f/5);
1045 _tamara->setPosition(VisibleRect::left().x + 60, VisibleRect::bottom().y+VisibleRect::getVisibleRect().size.height*4/5);
1046}
USING_NS_CC
@ kTagSlider
@ kTagAction1
@ kTagAction2
#define ADD_TEST_CASE(__className__)
Definition: BaseTest.h:211
cocos2d::Sprite * _kathia
cocos2d::Sprite * _tamara
cocos2d::Sprite * _grossini
void centerSprites(unsigned int numberOfSprites)
virtual std::string subtitle() const override
virtual void onEnter() override
void onEnter() override
virtual std::string subtitle() const override
void altertime(float dt)
void onEnter() override
virtual std::string subtitle() const override
void onEnter() override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
void onEnter() override
void onEnter() override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
void onEnter() override
virtual std::string subtitle() const override
void onEnter() override
virtual std::string subtitle() const override
virtual std::string title() const override
void onEnter() override
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
void onEnter() override
virtual std::string subtitle() const override
void testStopAction(float dt)
void onEnter() override
virtual std::string subtitle() const override
void onEnter() override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
void onEnter() override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
void onEnter() override
virtual std::string subtitle() const override
void onEnter() override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
void onEnter() override
virtual void onEnter() override
Definition: BaseTest.cpp:430
static cocos2d::Rect getVisibleRect()
Definition: VisibleRect.cpp:39
static cocos2d::Vec2 bottom()
Definition: VisibleRect.cpp:63
static cocos2d::Vec2 left()
Definition: VisibleRect.cpp:45
static cocos2d::Vec2 right()
Definition: VisibleRect.cpp:51
static const char s_pathSister1[]
Definition: testResource.h:29
static const char s_pathSister2[]
Definition: testResource.h:30
static const char s_pathGrossini[]
Definition: testResource.h:28