RULbNumberIncrease.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "RULbNumberIncrease.h"
  2. NS_RU_BEGIN
  3. //=====class LbNumberIncrease=====
  4. LbNumberIncrease* LbNumberIncrease::create(const float duration, const int start_value, const int end_value)
  5. {
  6. LbNumberIncrease* action = new(std::nothrow) LbNumberIncrease();
  7. if (action && action->init(duration, start_value, end_value))
  8. {
  9. action->autorelease();
  10. }
  11. else
  12. {
  13. CC_SAFE_DELETE(action);
  14. }
  15. return action;
  16. }
  17. void LbNumberIncrease::startWithTarget(Node* target)
  18. {
  19. ActionInterval::startWithTarget(target);
  20. static_cast<Label*>(_target)->setString(Value(_start_value).asString());
  21. }
  22. void LbNumberIncrease::update(float dt)
  23. {
  24. _curFrameIndex++;
  25. int cur_value = int(_increase_value * _curFrameIndex + _start_value);
  26. static_cast<Label*>(_target)->setString(Value(cur_value).asString());
  27. }
  28. void LbNumberIncrease::stop()
  29. {
  30. static_cast<Label*>(_target)->setString(Value(_end_value).asString());
  31. ActionInterval::stop();
  32. _curFrameIndex = 0;
  33. }
  34. bool LbNumberIncrease::init(float duration, const int start_value, const int end_value)
  35. {
  36. if (!ActionInterval::initWithDuration(duration))
  37. {
  38. return false;
  39. }
  40. _start_value = start_value;
  41. _end_value = end_value;
  42. _curFrameIndex = 0;
  43. _increase_value = (end_value - start_value) / (duration / cocos2d::Director::getInstance()->getAnimationInterval());
  44. return true;
  45. }
  46. NS_RU_END