using System; using System.Diagnostics; namespace SpaceInvaders { public abstract class State { //------------------------------------------------------------------- // FIELDS //------------------------------------------------------------------- protected static GameContext pContext = null; //------------------------------------------------------------------- // CONSTRUCTION //------------------------------------------------------------------- public State() { } //------------------------------------------------------------------- // ABSTRACT METHODS //------------------------------------------------------------------- public abstract void Init(); public abstract void OnEnter(); public abstract void Update(float sysTime); public abstract void Draw(); public abstract void OnExit(); public abstract void Handle(); //------------------------------------------------------------------- // PUBLIC METHODS //------------------------------------------------------------------- public void SetContext(GameContext context) { Debug.Assert(context != null); State.pContext = context; } } }