fliXNA_xbox.FlxSound.update C# (CSharp) Method

update() public method

public update ( ) : void
return void
        public override void update()
        {
            base.update();
            if (_source != null)
            {
                x = _source.getMidpoint().x;
                y = _source.getMidpoint().y;
            }

            float radial = 1.0f;
            float fade = 1.0f;

            //Distance-based volume control
            if(_target != null)
            {
                radial = (_radius-FlxU.getDistance(_target.getMidpoint(),new FlxPoint(x,y)))/_radius;
                if(radial < 0) radial = 0;
                if(radial > 1) radial = 1;
            }

            //Cross-fading volume control
            if(_fadeOutTimer > 0)
            {
                _fadeOutTimer -= FlxG.elapsed;
                if(_fadeOutTimer <= 0)
                {
                    if(_pauseOnFadeOut)
                        pause();
                    else
                        stop();
                }
                fade = _fadeOutTimer/_fadeOutTotal;
                if(fade < 0) fade = 0;
            }
            else if(_fadeInTimer > 0)
            {
                _fadeInTimer -= FlxG.elapsed;
                fade = _fadeInTimer/_fadeInTotal;
                if(fade < 0) fade = 0;
                fade = 1 - fade;
            }

            if ( (autoDestroy && playCount > 0) && (_sound.State != SoundState.Paused && _sound.State != SoundState.Playing))
                _sound.Dispose();

            _volumeAdjust = radial*fade;
            updateTransform();
        }