Beispiel #1
0
        /// <summary>
        /// Starts the effect.
        /// </summary>
        /// <param name="switchEffect">The switch effect.</param>
        /// <param name="timeToSwitch">The time to switch.</param>
        private void StartEffect(ISceneSwitchEffect switchEffect, float timeToSwitch)
        {
            if (null == switchEffect) throw new ArgumentNullException("switchEffect");
            if (timeToSwitch < 0.05f) throw new ArgumentException("Scene switch effect should be at least 50 ms length", "timeToSwitch");

            //
            if(_oldEffectTarget!=null){
                _oldEffectTarget.Dispose();
            }
            _oldEffectTarget = _effectTarget;

            //2012/10/11 Neio , turn off mipmap
            PresentationParameters pp = graphics.GraphicsDevice.PresentationParameters;
            _effectTarget = new RenderTarget2D(graphics.GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight,
                false, pp.BackBufferFormat, DepthFormat.Depth24Stencil8);

            //2. Create player targeted this effect...
            _switchEffectPlayer = new SceneSwitchEffectPlayer(switchEffect, timeToSwitch, _effectTarget, _oldEffectTarget);
        }
Beispiel #2
0
        protected override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            float timeDelta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds / 1000);
            _script.Update(timeDelta);

            if (CurrentScene != null)
            {
                shadow.AddRoot(CurrentScene);
                shadow.Update(timeDelta);
                shadow.Clear();
            }

            if (null != _switchEffectPlayer)
            {
                if (!_switchEffectPlayer.Update((float)(gameTime.ElapsedGameTime.TotalMilliseconds/1000)))
                {
                    _switchEffectPlayer.Dispose();
                    _switchEffectPlayer = null;
                }
            }
        }