source: 2011/23/sijoseha/Fera Proelia/Fera Proelia/Fera Proelia/GameScreen.cs @ 2144

Revision 2141, 2.2 KB checked in by sijoseha, 8 years ago (diff)

Whoa. A lot of stuff since last commit.
Implemented ScreenManager? stuff to handle all the screens.
Input is handled also.
Simple tile based map system started up.
Normal menu.
Alotofsmallstuff

Line 
1using System;
2using System.Collections.Generic;
3using Microsoft.Xna.Framework;
4using Microsoft.Xna.Framework.Graphics;
5using Microsoft.Xna.Framework.Input.Touch;
6
7namespace Fera_Proelia
8{
9    public enum ScreenState
10    {
11        Active,
12        Hidden,
13    }
14    public abstract class GameScreen
15    {
16        public bool IsActive
17        {
18            get { return !otherScreenHasFocus && screenState == ScreenState.Active; }
19        }
20        bool otherScreenHasFocus;
21
22        public bool IsExiting
23        {
24            get { return isExiting; }
25            protected internal set { isExiting = value; }
26        }
27
28        bool isExiting = false;
29
30        public ScreenManager ScreenManager
31        {
32            get { return screenManager; }
33            internal set { screenManager = value; }
34        }
35        ScreenManager screenManager;
36
37        public ScreenState ScreenState
38        {
39            get { return screenState; }
40            protected set { screenState = value; }
41        }
42
43        ScreenState screenState = ScreenState.Hidden;
44
45        public GestureType EnabledGestures
46        {
47            get { return enabledGestures; }
48            protected set
49            {
50                enabledGestures = value;
51            }
52        }
53        GestureType enabledGestures = GestureType.None;
54
55        public GameScreen()
56        {
57
58        }
59        public virtual void LoadContent() { }
60        public virtual void UnloadContent() { }
61
62        public virtual void Update(GameTime gameTime, bool otherScreenHasFocus, bool coveredByOtherScreen)
63        {
64            this.otherScreenHasFocus = otherScreenHasFocus;
65            if (isExiting)
66            {
67                ScreenManager.RemoveScreen(this);
68            }
69            else if (coveredByOtherScreen)
70            {
71                screenState = ScreenState.Hidden;
72            }
73            else
74            {
75                screenState = ScreenState.Active;
76            }
77        }
78
79        public virtual void HandleInput(InputState input) { }
80
81        public virtual void Draw(GameTime gameTime) { }
82
83        public void ExitScreen()
84        {
85            ScreenManager.RemoveScreen(this);
86        }
87    }
88}
Note: See TracBrowser for help on using the repository browser.