Fixed bug with animations.
- Before, if you shoot and go to the main menu, then the traces of the bullets were not removed from the map. This was because the animation stopped updating and the time kept going forward. As a result, the system believed that the animations had already passed, although in reality they had not. Now animations are tied not to their own, but to the global time countermaster
parent
d3684f8aa6
commit
4dae42a3ef
|
@ -6,22 +6,16 @@
|
||||||
|
|
||||||
bool Animation::updateState() {
|
bool Animation::updateState() {
|
||||||
if(!_started) {
|
if(!_started) {
|
||||||
_startAnimationPoint = Time::time();
|
|
||||||
_endAnimationPoint = _startAnimationPoint + _duration;
|
|
||||||
_started = true;
|
_started = true;
|
||||||
return _duration != 0;
|
return _duration != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
_timeOld = _time;
|
|
||||||
// linear normalized time:
|
// linear normalized time:
|
||||||
_time = (Time::time() - _startAnimationPoint)/(_endAnimationPoint - _startAnimationPoint);
|
_dtime = Time::deltaTime()/_duration;
|
||||||
|
_time += _dtime;
|
||||||
|
|
||||||
if(_looped != LoopOut::Continue || _time < 0.5)
|
if(_looped == LoopOut::Continue && _time > 0.5)
|
||||||
_dtime = _time - _timeOld;
|
_time = 0.5;
|
||||||
else {
|
|
||||||
_time = _timeOld;
|
|
||||||
//_intType = linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (_intType) {
|
switch (_intType) {
|
||||||
case InterpolationType::bezier:
|
case InterpolationType::bezier:
|
||||||
|
|
|
@ -26,10 +26,7 @@ public:
|
||||||
protected:
|
protected:
|
||||||
double _time = 0; // normalized time (from 0 to 1)
|
double _time = 0; // normalized time (from 0 to 1)
|
||||||
double _dtime = 0;
|
double _dtime = 0;
|
||||||
double _timeOld = 0;
|
|
||||||
|
|
||||||
double _endAnimationPoint = 0;
|
|
||||||
double _startAnimationPoint = 0;
|
|
||||||
double _duration = 0;
|
double _duration = 0;
|
||||||
bool _started = false;
|
bool _started = false;
|
||||||
LoopOut _looped = LoopOut::None;
|
LoopOut _looped = LoopOut::None;
|
||||||
|
|
|
@ -22,6 +22,8 @@ namespace Interpolation {
|
||||||
static double dBouncing(double t, double dt);
|
static double dBouncing(double t, double dt);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
double Interpolation::Linear(double t) {
|
double Interpolation::Linear(double t) {
|
||||||
if(t < 0)
|
if(t < 0)
|
||||||
t = -t;
|
t = -t;
|
||||||
|
|
Loading…
Reference in New Issue