Add InQuadEasing and OutQuadEasing and make tasklists...

easing more natural
This commit is contained in:
Tobias Loose
2013-12-09 17:21:36 +01:00
parent 5d6557a49f
commit 1e610ff653
3 changed files with 48 additions and 4 deletions

View File

@@ -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

View File

@@ -81,8 +81,8 @@ protected:
string fileName;
float vPos;
InOutQuadEasing vPosInEasing;
InOutQuadEasing vPosOutEasing;
OutQuadEasing vPosInEasing;
InQuadEasing vPosOutEasing;
int mState;
JQuad * mBg[9];

View File

@@ -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()