osu-ds/arm9/source/Graphics/Transformation.cpp
2014-05-23 17:07:09 +09:00

54 lines
932 B
C++

#include "Transformation.h"
Transformation::Transformation(TransformType type, s32 starttime, s32 endtime, s32 startvalue, s32 endvalue)
{
this->type = type;
this->starttime = starttime;
this->endtime = endtime;
this->startvalue = startvalue;
this->endvalue = endvalue;
totaltime = endtime-starttime;
totalvalue = endvalue-startvalue;
currentvalue = startvalue;
active = false;
lastactive = false;
}
void Transformation::Update()
{
s32 time = GameClock::Clock().Time();
if (!active)
{
if (time > starttime)
active = true;
else
return;
}
if (time > endtime)
{
active = false;
currentvalue = endvalue;
lastactive = true;
return;
}
currentvalue = (s32)(((time-starttime)/(float)totaltime)*totalvalue + startvalue);
}
bool Transformation::Active()
{
if (lastactive)
{
lastactive = false;
return true;
}
return active;
}