123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #include "RULbNumberIncrease.h"
- NS_RU_BEGIN
- //=====class LbNumberIncrease=====
- LbNumberIncrease* LbNumberIncrease::create(const float duration, const int start_value, const int end_value)
- {
- LbNumberIncrease* action = new(std::nothrow) LbNumberIncrease();
- if (action && action->init(duration, start_value, end_value))
- {
- action->autorelease();
- }
- else
- {
- CC_SAFE_DELETE(action);
- }
-
- return action;
- }
- void LbNumberIncrease::startWithTarget(Node* target)
- {
- ActionInterval::startWithTarget(target);
- static_cast<Label*>(_target)->setString(Value(_start_value).asString());
- }
- void LbNumberIncrease::update(float dt)
- {
- _curFrameIndex++;
- int cur_value = int(_increase_value * _curFrameIndex + _start_value);
- static_cast<Label*>(_target)->setString(Value(cur_value).asString());
- }
- void LbNumberIncrease::stop()
- {
- static_cast<Label*>(_target)->setString(Value(_end_value).asString());
- ActionInterval::stop();
- _curFrameIndex = 0;
- }
- bool LbNumberIncrease::init(float duration, const int start_value, const int end_value)
- {
- if (!ActionInterval::initWithDuration(duration))
- {
- return false;
- }
-
- _start_value = start_value;
- _end_value = end_value;
- _curFrameIndex = 0;
- _increase_value = (end_value - start_value) / (duration / cocos2d::Director::getInstance()->getAnimationInterval());
-
- return true;
- }
- NS_RU_END
|