81 lines
2.0 KiB
C#
81 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
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)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|