Пример #1
0
        // update for given elapsed time
        public void Update(float elapsedTime)
        {
            // if in a transition
            if (fade > 0)
            {
                // update transition time
                fade -= elapsedTime;

                // if time to switch to new screen (fade out finished)
                if (next != null && fade < 0.5f * fadeTime)
                {
                    // tell new screen it is getting in focus
                    next.SetFocus(contentManager, true);

                    // tell the old screen it lost its focus
                    if (current != null)
                    {
                        current.SetFocus(contentManager, false);
                    }

                    // set new screen as current
                    current = next;
                    next    = null;
                }
            }

            // if current screen available, update it
            if (current != null)
            {
                current.Update(elapsedTime);
            }

            // calulate frame rate
            frameRateTime += elapsedTime;
            if (frameRateTime > 0.5f)
            {
                frameRate      = (int)((float)frameRateCount / frameRateTime);
                frameRateCount = 0;
                frameRateTime  = 0;
            }

            // accumulate elapsed time for background animation
            backgroundTime += elapsedTime;
        }