#region Using Statements using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; using FlatRedBall; using FlatRedBall.Content; using FlatRedBall.Content.Particle; using FlatRedBall.Input; using FlatRedBall.Math.Geometry; using FlatRedBall.Graphics.Particle; using FlatRedBall.Graphics; #endregion namespace FRBXNATestbed { /// /// This is the main type for your game /// public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; ContentManager content; Text debugText; bool[] mLevelLoaded; SpriteList mLevel1Sprites; SpriteList mLevel2Sprites; SpriteList mLevel3Sprites; public Game1() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); } /// /// 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. /// protected override void Initialize() { FlatRedBallServices.InitializeFlatRedBall(this, this.graphics); base.Initialize(); debugText = TextManager.AddText(""); debugText.Y = 13; debugText.X = -16; debugText.Scale = debugText.Spacing = .5f; mLevelLoaded = new bool[3]; mLevelLoaded[0] = false; mLevelLoaded[1] = false; mLevelLoaded[2] = false; mLevel1Sprites = new SpriteList(); mLevel2Sprites = new SpriteList(); mLevel3Sprites = new SpriteList(); } /// /// Load your graphics content. If loadAllContent is true, you should /// load content from both ResourceManagementMode pools. Otherwise, just /// load ResourceManagementMode.Manual content. /// /// Which type of content to load. protected override void LoadGraphicsContent(bool loadAllContent) { if (loadAllContent) { } } /// /// Unload your graphics content. If unloadAllContent is true, you should /// unload content from both ResourceManagementMode pools. Otherwise, just /// unload ResourceManagementMode.Manual content. Manual content will get /// Disposed by the GraphicsDevice during a Reset. /// /// Which type of content to unload. protected override void UnloadGraphicsContent(bool unloadAllContent) { if (unloadAllContent == true) { content.Unload(); } } /// /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input and playing audio. /// /// Provides a snapshot of timing values. protected override void Update(GameTime gameTime) { FlatRedBallServices.Update(gameTime); if(InputManager.Keyboard.KeyPushed(Keys.D1)) { if(mLevelLoaded[0] == false) { Sprite sprite = SpriteManager.AddSprite("redball.bmp", "Level1"); sprite.X = 5; mLevel1Sprites.Add(sprite); mLevelLoaded[0] = true; } else { mLevelLoaded[0] = false; FlatRedBallServices.Unload("Level1"); SpriteManager.RemoveSprite(mLevel1Sprites); } } else if(InputManager.Keyboard.KeyPushed(Keys.D2)) { if(mLevelLoaded[1] == false) { Sprite sprite = SpriteManager.AddSprite("redball.bmp", "Level2"); sprite.X = 1; mLevel2Sprites.Add(sprite); sprite = SpriteManager.AddSprite("redball.bmp", "Level2"); sprite.Y = 5; sprite.X = -2; mLevel2Sprites.Add(sprite); mLevelLoaded[1] = true; } else { mLevelLoaded[1] = false; FlatRedBallServices.Unload("Level2"); SpriteManager.RemoveSprite(mLevel2Sprites); } } else if(InputManager.Keyboard.KeyPushed(Keys.D3)) { if(mLevelLoaded[2] == false) { Sprite sprite = SpriteManager.AddSprite("redball.bmp", "Level3"); sprite.X = -3; mLevel3Sprites.Add(sprite); sprite = SpriteManager.AddSprite("redball.bmp", "Level3"); sprite.Y = 2; sprite.X = 4; mLevel3Sprites.Add(sprite); sprite = SpriteManager.AddSprite("redball.bmp", "Level3"); sprite.Y = 6; sprite.X = -4; mLevel3Sprites.Add(sprite); mLevelLoaded[2] = true; } else { mLevelLoaded[2] = false; FlatRedBallServices.Unload("Level3"); SpriteManager.RemoveSprite(mLevel3Sprites); } } debugText.DisplayText = FlatRedBallServices.GetContentManagerInformation(); base.Update(gameTime); } /// /// This is called when the game should draw itself. /// /// Provides a snapshot of timing values. protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.CornflowerBlue); FlatRedBallServices.Draw(); base.Draw(gameTime); } } }