axiosengine/axios/Engine/AxiosTimer.cs
nathan@daedalus 7d3c8a9f39 + * - Adding properties in DrawableAxiosGameObject to turn on/off the following:
+ *   - AdjustUnits
+ *   - RelativeToCamera
+ * - Cleaning and sorting using statements
2012-03-24 18:06:51 -05:00

78 lines
1.9 KiB
C#

using System;
using Axios.Engine.Interfaces;
using Microsoft.Xna.Framework;
namespace Axios.Engine
{
/*
* Modeled after Nicks' implemenentation
* Source: http://www.gamedev.net/topic/473544-how-to-make-a-timer-using-xna/page__view__findpost__p__4107032
*
*/
public class AxiosTimer : IAxiosGameObject
{
TimeSpan interval = new TimeSpan(0, 0, 1);
TimeSpan lastTick = new TimeSpan();
private bool _enabled = false;
public event EventHandler Tick;
public TimeSpan Interval
{
get { return interval; }
set { interval = value; }
}
public Boolean Enabled
{
get { return _enabled; }
set { _enabled = value; }
}
public AxiosTimer()
{
}
public void Update(AxiosGameScreen gameScreen, GameTime gameTime, bool otherScreenHasFocus, bool coveredByOtherScreen)
{
if (_enabled)
{
if (gameTime.TotalGameTime - lastTick >= interval)
{
if (Tick != null)
Tick(this, null);
lastTick = gameTime.TotalGameTime;
}
}
else
{
lastTick = gameTime.TotalGameTime;
}
}
public virtual void LoadContent(AxiosGameScreen gameScreen)
{
}
public void HandleInput(AxiosGameScreen gameScreen, FarseerPhysics.SamplesFramework.InputHelper input, Microsoft.Xna.Framework.GameTime gameTime)
{
}
public void HandleCursor(AxiosGameScreen gameScreen, FarseerPhysics.SamplesFramework.InputHelper input)
{
}
public void UnloadContent(AxiosGameScreen gameScreen)
{
}
}
}