125 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Microsoft.Xna.Framework;
 | |
| using Microsoft.Xna.Framework.Graphics;
 | |
| using Microsoft.Xna.Framework.Input;
 | |
| using RhythmBullet.Zer01HD.Game;
 | |
| using RhythmBullet.Zer01HD.Game.ContentResolvers;
 | |
| using RhythmBullet.Zer01HD.UI;
 | |
| using RhythmBullet.Zer01HD.Utilities.ContentSystem;
 | |
| using RhythmBullet.Zer01HD.Utilities.UI;
 | |
| 
 | |
| namespace RhythmBullet
 | |
| {
 | |
|     /// <summary>
 | |
|     /// This is the main type for your game.
 | |
|     /// </summary>
 | |
|     public class RhythmBulletGame : Game
 | |
|     {
 | |
|         public GraphicsDeviceManager Graphics;
 | |
|         SpriteBatch spriteBatch;
 | |
|         public readonly ContentSystem Assets;
 | |
|         private readonly ResolutionContentResolver resolutionContentResolver;
 | |
|         private Screen currentScreen;
 | |
|         Screen CurrentScreen
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return currentScreen;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 if (currentScreen != null)
 | |
|                 {
 | |
|                     CurrentScreen.Hide();
 | |
|                 }
 | |
|                 currentScreen = value;
 | |
|                 CurrentScreen.Show();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public RhythmBulletGame()
 | |
|         {
 | |
|             Graphics = new GraphicsDeviceManager(this);
 | |
|             Graphics.PreferredBackBufferWidth = 320;
 | |
|             Graphics.PreferredBackBufferHeight = 320;
 | |
|             Window.IsBorderless = true;
 | |
|             Content.RootDirectory = "Content";
 | |
|             Assets = new ContentSystem(Content);
 | |
|             resolutionContentResolver = new ResolutionContentResolver();
 | |
|             FontContentResolver fcr = new FontContentResolver(resolutionContentResolver);
 | |
|             Assets.contentResolver.Add(typeof(Texture2D), resolutionContentResolver);
 | |
|             Assets.contentResolver.Add(typeof(SpriteFont), fcr);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Allows the game to perform any initialization it needs to before starting to run.
 | |
|         /// This is where it can query for any required services and load any non-graphic
 | |
|         /// related content.  Calling base.Initialize will enumerate through any components
 | |
|         /// and initialize them as well.
 | |
|         /// </summary>
 | |
|         protected override void Initialize()
 | |
|         {
 | |
|             // TODO: Add your initialization logic here
 | |
|             base.Initialize();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// LoadContent will be called once per game and is the place to load
 | |
|         /// all of your content.
 | |
|         /// </summary>
 | |
|         protected override void LoadContent()
 | |
|         {
 | |
|             // Create a new SpriteBatch, which can be used to draw textures.
 | |
|             spriteBatch = new SpriteBatch(GraphicsDevice);
 | |
|             CurrentScreen = new LoadingScreen(Content.Load<Texture2D>("recrown"));
 | |
| 
 | |
|             // TODO: use this.Content to load your game content here
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// UnloadContent will be called once per game and is the place to unload
 | |
|         /// game-specific content.
 | |
|         /// </summary>
 | |
|         protected override void UnloadContent()
 | |
|         {
 | |
|             // TODO: Unload any non ContentManager content here
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Allows the game to run logic such as updating the world,
 | |
|         /// checking for collisions, gathering input, and playing audio.
 | |
|         /// </summary>
 | |
|         /// <param name="gameTime">Provides a snapshot of timing values.</param>
 | |
|         protected override void Update(GameTime gameTime)
 | |
|         {
 | |
|             CurrentScreen.Update(gameTime);
 | |
|             base.Update(gameTime);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This is called when the game should draw itself.
 | |
|         /// </summary>
 | |
|         /// <param name="gameTime">Provides a snapshot of timing values.</param>
 | |
|         protected override void Draw(GameTime gameTime)
 | |
|         {
 | |
|             GraphicsDevice.Clear(Color.White);
 | |
|             spriteBatch.Begin();
 | |
|             CurrentScreen.Draw(spriteBatch);
 | |
|             spriteBatch.End();
 | |
|             
 | |
|             base.Draw(gameTime);
 | |
|         }
 | |
| 
 | |
|         public void Reload()
 | |
|         {
 | |
|             Assets.UnloadAll();
 | |
|             resolutionContentResolver.Width = Graphics.PreferredBackBufferWidth;
 | |
|             resolutionContentResolver.Height = Graphics.PreferredBackBufferHeight;
 | |
|         }
 | |
| 
 | |
|         void QueueContent()
 | |
|         {
 | |
| 
 | |
|         }
 | |
|     }
 | |
| }
 |