bool ControllerFadeAlpha::addTime(WidgetPtr _widget, float _time) { float alpha = _widget->getAlpha(); // проверяем нужно ли к чему еще стремиться if (mAlpha > alpha) { alpha += _time * mCoef; if (mAlpha > alpha) { _widget->setAlpha(alpha); eventUpdateAction(_widget); return true; } else { _widget->setAlpha(mAlpha); } } else if (mAlpha < alpha) { alpha -= _time * mCoef; if (mAlpha < alpha) { _widget->setAlpha(alpha); eventUpdateAction(_widget); return true; } else { _widget->setAlpha(mAlpha); } } // вызываем пользовательский делегат пост обработки eventPostAction(_widget); return false; }
bool ControllerPosition::addTime(Widget* _widget, float _time) { mElapsedTime += _time; if (mElapsedTime < mTime) { IntCoord coord; eventFrameAction(mStartCoord, mDestCoord, coord, mElapsedTime / mTime); if (mCalcPosition) { if (mCalcSize) _widget->setCoord(coord); else _widget->setPosition(coord.point()); } else if (mCalcSize) _widget->setSize(coord.size()); // вызываем пользовательский делегат обновления eventUpdateAction(_widget, this); return true; } // поставить точно в конец IntCoord coord; eventFrameAction(mStartCoord, mDestCoord, coord, 1.0f); if (mCalcPosition) { if (mCalcSize) _widget->setCoord(coord); else _widget->setPosition(coord.point()); } else if (mCalcSize) _widget->setSize(coord.size()); // вызываем пользовательский делегат обновления eventUpdateAction(_widget, this); // вызываем пользовательский делегат пост обработки eventPostAction(_widget, this); return false; }