diff --git a/projects/mtg/include/Easing.h b/projects/mtg/include/Easing.h index ccacd4a78..1b5cf35a9 100644 --- a/projects/mtg/include/Easing.h +++ b/projects/mtg/include/Easing.h @@ -167,6 +167,50 @@ public: } }; +/*! \brief This class defines an easing with quadratic acceleration + */ +class InQuadEasing : public Easing +{ +public: + /*! \brief Calls Easing::Easing(val). + * + * \see Easing::Easing(float& val) + */ + InQuadEasing(float& val): Easing(val) {} + + /*! \brief Implements the value calculation. + * + * \see Easing::updateValue() + */ + void updateValue() + { + float time_tmp = time_acc / duration; + value = delta_value * time_tmp * time_tmp + start_value; + } +}; + +/*! \brief This class defines an easing with quadratic decceleration + */ +class OutQuadEasing : public Easing +{ +public: + /*! \brief Calls Easing::Easing(val). + * + * \see Easing::Easing(float& val) + */ + OutQuadEasing(float& val): Easing(val) {} + + /*! \brief Implements the value calculation. + * + * \see Easing::updateValue() + */ + void updateValue() + { + float time_tmp = time_acc / duration; + value = (-delta_value) * time_tmp * (time_tmp - 2.0f) + start_value; + } +}; + /*! \brief This class defines an easing with quadratic acceleration and decceleration. */ class InOutQuadEasing : public Easing diff --git a/projects/mtg/include/Tasks.h b/projects/mtg/include/Tasks.h index 290b8218e..2d96430db 100644 --- a/projects/mtg/include/Tasks.h +++ b/projects/mtg/include/Tasks.h @@ -81,8 +81,8 @@ protected: string fileName; float vPos; - InOutQuadEasing vPosInEasing; - InOutQuadEasing vPosOutEasing; + OutQuadEasing vPosInEasing; + InQuadEasing vPosOutEasing; int mState; JQuad * mBg[9]; diff --git a/projects/mtg/src/Tasks.cpp b/projects/mtg/src/Tasks.cpp index a2399f1e9..48bc9c790 100644 --- a/projects/mtg/src/Tasks.cpp +++ b/projects/mtg/src/Tasks.cpp @@ -381,7 +381,7 @@ void TaskList::Start() { mState = TASKS_IN; vPos = -SCREEN_HEIGHT; //Offscreen - vPosInEasing.start(0.0f, 2.0f); + vPosInEasing.start(0.0f, 1.0f); if (!mBgTex) { @@ -412,7 +412,7 @@ void TaskList::Start() void TaskList::End() { mState = TASKS_OUT; - vPosOutEasing.start(float(-SCREEN_HEIGHT), 2.0f); + vPosOutEasing.start(float(-SCREEN_HEIGHT), 0.9f); } void TaskList::passOneDay()