public override void Update(Microsoft.Xna.Framework.GameTime gameTime)
    {
        bool ticked = false;

        // Figure out how many Ticks we need.
        if (IsEnabled && this.Interval > TimeSpan.Zero)
        {
            var args = new GameTimeEventArgs(gameTime);
            ElapsedTime = ElapsedTime.Add(gameTime.ElapsedGameTime);
            while (IsEnabled && ElapsedTime >= Interval)
            {
                if (!ticked)
                {
                    ticked = true;
                    OnTickFirst(args);
                }
                ElapsedTime = ElapsedTime.Subtract(Interval);
                OnTick(args);
            }
            // If we know we ticked at least once during this Update, raise event that we're on the last Tick.
            if (ticked)
            {
                OnTickLast(args);
            }
        }
        base.Update(gameTime);
    }
Exemple #2
0
 /// <summary>
 /// Minden egyes másodpercben meghívódik, ahogy telik az idõ.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void time_Elapsed(object sender, ElapsedEventArgs e)
 {
     if (gameMode == GameMode.TIME)
     {
         ElapsedTime = ElapsedTime.Subtract(TimeSpan.FromSeconds(1));
     }
     else
     {
         ElapsedTime = ElapsedTime.Add(TimeSpan.FromSeconds(1));
     }
     if (ElapsedTime == TimeSpan.Zero)
     {
         time.Stop();
         time.Dispose();
     }
     if (TimeElapsedHandler != null)
     {
         TimeElapsedHandler(ElapsedTime);
     }
 }