GAM456-SpaceInvaders / SpaceInvaders / 7_GameState / State.cs
State.cs
Raw
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;
        }


    }
}