78 lines
1.9 KiB
C#
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)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|