Simplify and combine fading out for both moving and stationary sprites.

git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@276 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
Dave Hoover
2007-07-18 18:47:37 +00:00
parent 0670fe26e7
commit 81dcd90c1a
@@ -87,8 +87,10 @@ public class FadableImageSprite extends OrientableImageSprite
setAlpha(1.0f);
_fadeStamp = 0;
_pathDuration = pathDuration;
_fadeOutDuration = (long)(pathDuration*fadePortion);
_fadeDelay = _pathDuration - _fadeOutDuration;
}
/**
@@ -137,8 +139,7 @@ public class FadableImageSprite extends OrientableImageSprite
}
if (tickStamp > _fadeStamp + _fadeDelay) {
// initial delay has passed
float alpha = (float)(tickStamp-_fadeStamp-_fadeDelay)/
_fadeInDuration;
float alpha = (float)(tickStamp-_fadeStamp-_fadeDelay) / _fadeInDuration;
if (alpha >= 1.0f) {
// fade-in complete
setAlpha(1.0f);
@@ -151,30 +152,21 @@ public class FadableImageSprite extends OrientableImageSprite
}
} else if (_fadeOutDuration != -1) {
if (_path != null) {
if (tickStamp - _pathStamp <= _fadeOutDuration) {
// fading out while moving
float alpha = 1f - (_pathStamp + _pathDuration - tickStamp)
/ _fadeOutDuration;
setAlpha(alpha);
}
} else {
// fading out while stationary
if (_fadeStamp == 0) {
// store the time at which fade started
_fadeStamp = tickStamp;
}
if (tickStamp > _fadeStamp + _fadeDelay) {
// initial delay has passed
float alpha = 1f - (float)(tickStamp - _fadeStamp - _fadeDelay) / _fadeOutDuration;
if (alpha <= 0.0f) {
// fade-out complete
setAlpha(0.0f);
_fadeOutDuration = -1;
if (_fadeStamp == 0) {
// store the time at which fade started
_fadeStamp = tickStamp;
}
} else {
setAlpha(alpha);
}
if (tickStamp > _fadeStamp + _fadeDelay) {
// initial delay has passed
float alpha = 1f - (float)(tickStamp - _fadeStamp - _fadeDelay) / _fadeOutDuration;
if (alpha <= 0.0f) {
// fade-out complete
setAlpha(0.0f);
_fadeOutDuration = -1;
} else {
setAlpha(alpha);
}
}
}