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); }
/// <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); } }