source: 2012/23/RamiP/YAG2DSSBase/YAG2DSS/YAG2DSS/ALTKHandler.cs @ 2848

Revision 2848, 6.0 KB checked in by ramipasa, 9 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using Microsoft.Xna.Framework;
5using Microsoft.Xna.Framework.Audio;
6using Microsoft.Xna.Framework.Content;
7using Microsoft.Xna.Framework.GamerServices;
8using Microsoft.Xna.Framework.Graphics;
9using Microsoft.Xna.Framework.Input;
10using Microsoft.Xna.Framework.Media;
11using ALTK;
12
13namespace ALTK
14{
15    /// <summary>
16    /// This is a game component that implements IUpdateable.
17    /// </summary>
18    public class ALTKHandler : Microsoft.Xna.Framework.GameComponent
19    {
20        public ALTKHandler(Game game)
21            : base(game)
22        {
23            // TODO: Construct any child components here
24        }
25
26        public static Loader Loader;
27        public static Cursor Cursor;
28        public static StaticAnimHandler StaticAnimHandler;
29        public static GUI.Dialogs.ExitWindow ExitWindow;
30        public static GUI.AMessageDisplay MessageDisplay;
31        public static List<GUI.ALineBar> HealthBars = new List<GUI.ALineBar>();
32        public static List<GUI.AScoreDisplay> ScoreDisplayers = new List<GUI.AScoreDisplay>();
33        public static List<GUI.AScoreRatioDisplay> ScoreRatioDisplayers = new List<GUI.AScoreRatioDisplay>();
34        public static Audio.MusicPlayer MusicPlayer;
35        public static Audio.SoundPlayer SoundPlayer;
36
37        /// <summary>
38        /// Allows the game component to perform any initialization it needs to before starting
39        /// to run.  This is where it can query for any required services and load content.
40        /// </summary>
41        public override void Initialize()
42        {
43            // TODO: Add your initialization code here
44
45            base.Initialize();
46
47            Loader = new Loader(Game);
48            Loader.Initialize();
49
50            StaticAnimHandler = new ALTK.StaticAnimHandler(Game);
51            StaticAnimHandler.Initialize();
52            Game.Components.Add(StaticAnimHandler);
53
54            Cursor = new Cursor(Game);
55            Cursor.Initialize();
56            Cursor.Visible = false;
57            Game.Components.Add(Cursor);
58
59            ExitWindow = new GUI.Dialogs.ExitWindow(Game);
60            ExitWindow.Initialize();
61            ExitWindow.Visible = false;
62            ExitWindow.Enabled = false;
63            Game.Components.Add(ExitWindow);
64
65            MessageDisplay = new GUI.AMessageDisplay(Game);
66            MessageDisplay.backgroundTextureColor = new Color(0, 192, 0, 128);
67            MessageDisplay.Width = ALTKConstants.WindowWidth;
68            MessageDisplay.TextColor = Color.Blue;
69            MessageDisplay.FontPath = "aMainFont";
70            MessageDisplay.UpdateFont("");
71            MessageDisplay.Initialize();
72            MessageDisplay.CreateBackgroundTexture(ALTKConstants.WindowWidth);
73            Game.Components.Add(MessageDisplay);
74
75            HealthBars.Add(CreateHealthBar(new Vector2(ALTKConstants.WindowWidth - 36.0f, ALTKConstants.WindowHeight - 110.0f)));
76            HealthBars.Add(CreateHealthBar(new Vector2(10.0f, ALTKConstants.WindowHeight - 110.0f)));
77            Game.Components.Add(HealthBars[0]);
78            Game.Components.Add(HealthBars[1]);
79
80            ScoreDisplayers.Add(CreateScoreDisplayer(new Vector2(ALTKConstants.WindowWidth - 105.0f, 5.0f)));
81            ScoreDisplayers.Add(CreateScoreDisplayer(new Vector2(5.0f, 5.0f)));
82            Game.Components.Add(ScoreDisplayers[0]);
83            Game.Components.Add(ScoreDisplayers[1]);
84
85            ScoreRatioDisplayers.Add(CreateScoreRatioDisplayer(new Vector2(ALTKConstants.WindowWidth - 145.0f, 5.0f)));
86            ScoreRatioDisplayers.Add(CreateScoreRatioDisplayer(new Vector2(105.0f, 5.0f)));
87            Game.Components.Add(ScoreRatioDisplayers[0]);
88            Game.Components.Add(ScoreRatioDisplayers[1]);
89
90            MusicPlayer = new Audio.MusicPlayer(Game);
91            MusicPlayer.Initialize();
92            MusicPlayer.LoadTrack("YAG2DSS", true);
93
94            SoundPlayer = new Audio.SoundPlayer(Game);
95            SoundPlayer.Initialize();
96        }
97
98        private GUI.AScoreRatioDisplay CreateScoreRatioDisplayer(Vector2 position)
99        {
100            GUI.AScoreRatioDisplay ScoreRatioDisplayer = new GUI.AScoreRatioDisplay(Game);
101            ScoreRatioDisplayer.Position = position;
102            ScoreRatioDisplayer.Value = 1.0;
103            ScoreRatioDisplayer.Size = new Vector2(40.0f, 30.0f);
104            ScoreRatioDisplayer.Color = Color.Pink;
105            ScoreRatioDisplayer.Initialize();
106            return ScoreRatioDisplayer;
107        }
108
109        private GUI.AScoreDisplay CreateScoreDisplayer(Vector2 position)
110        {
111            GUI.AScoreDisplay ScoreDisplayer = new GUI.AScoreDisplay(Game);
112            ScoreDisplayer.Position = position;
113            ScoreDisplayer.Value = 0;
114            ScoreDisplayer.Size = new Vector2(100.0f, 30.0f);
115            ScoreDisplayer.Color = Color.Purple;
116            ScoreDisplayer.Initialize();
117            return ScoreDisplayer;
118        }
119
120        private GUI.ALineBar CreateHealthBar(Vector2 position)
121        {
122            GUI.ALineBar returnValue = new GUI.ALineBar(Game);
123            returnValue.Position = position;
124            returnValue.Value = 100;
125            returnValue.Enabled = true;
126            returnValue.Initialize();
127            return returnValue;
128        }
129
130        public static Vector2 AdjustJypeliVectorToXna(double x, double y)
131        {
132            return CreateXNAVectorFromDoubles(x * ALTKConstants.JypeliToXNARatioX, y * ALTKConstants.JypeliToXNARatioY);
133        }
134
135        private static Vector2 CreateXNAVectorFromDoubles(double x, double y)
136        {
137            return new Vector2(Convert.ToSingle(x), Convert.ToSingle(y));
138        }
139
140        /// <summary>
141        /// Allows the game component to update itself.
142        /// </summary>
143        /// <param name="gameTime">Provides a snapshot of timing values.</param>
144        public override void Update(GameTime gameTime)
145        {
146            // TODO: Add your update code here
147
148            base.Update(gameTime);
149        }
150    }
151}
Note: See TracBrowser for help on using the repository browser.