TestTweenShine.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #pragma once
  2. #include "test.h"
  3. #include "TextField.h"
  4. #include "utils/stringUtils.h"
  5. class TweenShine: public Tween
  6. {
  7. public:
  8. TweenShine()
  9. {
  10. }
  11. void _loopDone(Actor& actor, const UpdateState& us) OVERRIDE
  12. {
  13. for (int i = 0; i < 5; ++i)
  14. {
  15. Vector2 pos;
  16. pos.x = scalar::randFloat(0, actor.getWidth());
  17. pos.y = scalar::randFloat(0, actor.getHeight());
  18. if (!actor.isOn(pos))
  19. continue;
  20. spSprite sprite = new Sprite;
  21. sprite->setResAnim(resources.getResAnim("snow"));
  22. sprite->setAnchor(0.5f, 0.5f);
  23. sprite->setPosition(pos);
  24. //sprite->setAlpha(0);
  25. sprite->setScale(0.5f);
  26. sprite->addTween(Actor::TweenScale(1.5f), 500, 1, false, 0, Tween::ease_inBack);
  27. sprite->addTween(Actor::TweenAlpha(0), TweenOptions(500).delay(800).detach(true));
  28. actor.addChild(sprite);
  29. //break;
  30. }
  31. }
  32. static spTween create(int duration, int loops)
  33. {
  34. spTween t = new TweenShine;
  35. t->setDuration(duration);
  36. t->setLoops(loops);
  37. return t;
  38. }
  39. };
  40. class TestTweenShine: public Test
  41. {
  42. public:
  43. spSprite sprite;
  44. TestTweenShine()
  45. {
  46. sprite = new Sprite;
  47. sprite->setResAnim(resources.getResAnim("flower"));
  48. sprite->attachTo(content);
  49. //sprite->setAnchor(0.5f, 0.5f);
  50. sprite->setPosition(content->getSize() / 2 - sprite->getSize() / 2);
  51. sprite->addTween(TweenShine::create(10, 300));
  52. addButton("shine", "shine");
  53. }
  54. void clicked(string id)
  55. {
  56. sprite->addTween(TweenShine::create(10, 300));
  57. }
  58. };