public Game() { // Demo/Select Screen this.roundNum = 1; TextureManager.Create(2, 2); ImageManager.Create(5, 2); SpriteManager.Create(5, 2); SpriteBoxManager.Create(1, 1); SpriteBatchManager.Create(2, 1); TimerManager.Create(3, 1); GameObjectManager.Create(3, 1); ProxySpriteManager.Create(10, 5); CollisionPairManager.Create(2, 1); SoundManager.Create(9, 1); FontManager.Create(26, 10); ScoreManager.Initialize(); //--------------------------------------------------------------------------------------------------------- // Load Textures //--------------------------------------------------------------------------------------------------------- Texture pSpritesTexture = TextureManager.Add(TextureName.Sprites, "Sprites.tga"); Texture pShieldTexture = TextureManager.Add(TextureName.Shields, "Shield.tga"); TextureManager.Add(TextureName.Consolas36pt, "consolas36pt.tga"); FontManager.AddXml("Consolas36pt.xml", FontName.Consolas36pt, TextureName.Consolas36pt); //--------------------------------------------------------------------------------------------------------- // Load Sounds //--------------------------------------------------------------------------------------------------------- SoundManager.Add(SoundName.explosion); SoundManager.Add(SoundName.fastInvader1); SoundManager.Add(SoundName.fastInvader2); SoundManager.Add(SoundName.fastInvader3); SoundManager.Add(SoundName.fastInvader4); SoundManager.Add(SoundName.invaderKilled); SoundManager.Add(SoundName.shoot); SoundManager.Add(SoundName.ufoHighPitch); SoundManager.Add(SoundName.ufoLowPitch); //--------------------------------------------------------------------------------------------------------- // Create SpriteBatches //--------------------------------------------------------------------------------------------------------- SpriteBatch sbAliens = SpriteBatchManager.Add(SpriteBatchName.Aliens); SpriteBatch sbBoxes = SpriteBatchManager.Add(SpriteBatchName.Boxes); SpriteBatch sbShips = SpriteBatchManager.Add(SpriteBatchName.Ships); SpriteBatch sbSplats = SpriteBatchManager.Add(SpriteBatchName.Splats); SpriteBatch sbShields = SpriteBatchManager.Add(SpriteBatchName.Shields); SpriteBatch sbFonts = SpriteBatchManager.Add(SpriteBatchName.Fonts); InitializeImageManager(); //--------------------------------------------------------------------------------------------------------- // Create Sprites //--------------------------------------------------------------------------------------------------------- SpriteManager.Add(SpriteBaseName.UFO, ImageName.UFO, 200.0f, 200.0f, 50.0f, 50.0f); SpriteManager.Add(SpriteBaseName.UFOBomb, ImageName.Missile, 100.0f, 700.0f, 5.0f, 32.0f); SpriteManager.Add(SpriteBaseName.Squid, ImageName.SquidA, 100.0f, 800.0f, 50.0f, 50.0f); SpriteManager.Add(SpriteBaseName.Crab, ImageName.CrabA, 100.0f, 750.0f, 50.0f, 50.0f); SpriteManager.Add(SpriteBaseName.Octopus, ImageName.OctopusA, 100.0f, 700.0f, 50.0f, 50.0f); SpriteManager.Add(SpriteBaseName.Ship, ImageName.Ship, 100.0f, 700.0f, 50.0f, 50.0f); SpriteManager.Add(SpriteBaseName.Missile, ImageName.Missile, 100.0f, 700.0f, 5.0f, 32.0f); SpriteManager.Add(SpriteBaseName.BombStraight, ImageName.BombStraightA, 100.0f, 100.0f, 10.0f, 60.0f); SpriteManager.Add(SpriteBaseName.BombDagger, ImageName.BombDaggerA, 100.0f, 100.0f, 20.0f, 60.0f); SpriteManager.Add(SpriteBaseName.BombZigZag, ImageName.BombZigZagA, 200.0f, 200.0f, 20.0f, 60.0f); SpriteManager.Add(SpriteBaseName.Brick, ImageName.Brick, 50.0f, 25.0f, 40.0f, 20.0f); SpriteManager.Add(SpriteBaseName.BrickLeftTop0, ImageName.BrickLeftTop0, 50.0f, 25.0f, 40.0f, 20.0f); SpriteManager.Add(SpriteBaseName.BrickLeftTop1, ImageName.BrickLeftTop1, 50.0f, 25.0f, 40.0f, 20.0f); SpriteManager.Add(SpriteBaseName.BrickLeftBottom, ImageName.BrickLeftBottom, 50.0f, 25.0f, 40.0f, 20.0f); SpriteManager.Add(SpriteBaseName.BrickRightTop0, ImageName.BrickRightTop0, 50.0f, 25.0f, 40.0f, 20.0f); SpriteManager.Add(SpriteBaseName.BrickRightTop1, ImageName.BrickRightTop1, 50.0f, 25.0f, 40.0f, 20.0f); SpriteManager.Add(SpriteBaseName.BrickRightBottom, ImageName.BrickRightBottom, 50.0f, 25.0f, 40.0f, 20.0f); SpriteManager.Add(SpriteBaseName.Splat, ImageName.AlienExplosion, 200.0f, 200.0f, 50.0f, 50.0f); SpriteManager.Add(SpriteBaseName.Explosion, ImageName.ShipExplosion, 200.0f, 200.0f, 50.0f, 50.0f); // Input InputSubject inputSubject; inputSubject = InputManager.GetOneSubject(); inputSubject.RegisterObserver(new OnePlayerObserver()); inputSubject = InputManager.GetArrowLeftSubject(); inputSubject.RegisterObserver(new MoveLeftObserver()); inputSubject = InputManager.GetArrowRightSubject(); inputSubject.RegisterObserver(new MoveRightObserver()); inputSubject = InputManager.GetSpaceSubject(); inputSubject.RegisterObserver(new ShootObserver()); //inputSubject = InputManager.GetTwoSubject(); //inputSubject.RegisterObserver(new TwoPlayerObserver()); TimerManager.Add(TimerEventName.SetGameState, TimerManager.GetCurrentTime() + 5.0f, TimerManager.GetCurrentTime() + 5.0f, new GameSelectEvent()); }
//----------------------------------------------------------------------------- // Game::LoadContent() // Allows you to load all content needed for your engine, // such as objects, graphics, etc. //----------------------------------------------------------------------------- public override void LoadContent() { //--------------------------------------------------------------------------------------------------------- // Manager initialization //--------------------------------------------------------------------------------------------------------- TextureManager.Create(1, 1); ImageManager.Create(5, 2); GameSpriteManager.Create(4, 2); BoxSpriteManager.Create(3, 1); SpriteBatchManager.Create(3, 1); ProxySpriteManager.Create(10, 1); TimerManager.Create(3, 1); GameObjectManager.Create(3, 1); CollisionPairManager.Create(3, 1); InputManager.Create(); SoundManager.Create(); GlyphManager.Create(3, 1); FontManager.Create(3, 1); ScoreManager.Create(); //--------------------------------------------------------------------------------------------------------- // Load the Textures //--------------------------------------------------------------------------------------------------------- TextureManager.Add(Texture.Name.Aliens, "aliens14x14.tga"); TextureManager.Add(Texture.Name.Shield, "birds_N_shield.tga"); TextureManager.Add(Texture.Name.Consolas36pt, "consolas36pt.tga"); FontManager.AddXml(Glyph.Name.Consolas36pt, "Consolas36pt.xml", Texture.Name.Consolas36pt); //--------------------------------------------------------------------------------------------------------- // Create Images //--------------------------------------------------------------------------------------------------------- ImageManager.Add(Image.Name.Octopus0, Texture.Name.Aliens, 56, 28, 168, 112); ImageManager.Add(Image.Name.Octopus1, Texture.Name.Aliens, 56, 182, 168, 112); ImageManager.Add(Image.Name.Crab1, Texture.Name.Aliens, 322, 182, 154, 112); ImageManager.Add(Image.Name.Crab0, Texture.Name.Aliens, 322, 28, 154, 112); ImageManager.Add(Image.Name.Squid0, Texture.Name.Aliens, 616, 28, 112, 112); ImageManager.Add(Image.Name.Squid1, Texture.Name.Aliens, 616, 182, 112, 112); ImageManager.Add(Image.Name.UFO, Texture.Name.Aliens, 84, 504, 224, 98); ImageManager.Add(Image.Name.Missile, Texture.Name.Aliens, 378, 798, 14, 98); ImageManager.Add(Image.Name.Player, Texture.Name.Aliens, 57, 336, 182, 112); ImageManager.Add(Image.Name.BombCross, Texture.Name.Aliens, 196, 798, 42, 84); ImageManager.Add(Image.Name.BombStraight, Texture.Name.Aliens, 630, 798, 14, 98); ImageManager.Add(Image.Name.BombZigZag, Texture.Name.Aliens, 574, 644, 42, 98); ImageManager.Add(Image.Name.UFO_Explosion, Texture.Name.Aliens, 42, 643, 294, 112); ImageManager.Add(Image.Name.Player_Explosion1, Texture.Name.Aliens, 308, 336, 210, 112); ImageManager.Add(Image.Name.Player_Explosion2, Texture.Name.Aliens, 560, 336, 224, 112); ImageManager.Add(Image.Name.Missile_Explosion, Texture.Name.Aliens, 406, 490, 112, 112); ImageManager.Add(Image.Name.Alien_Explosion2, Texture.Name.Aliens, 574, 490, 182, 112); ImageManager.Add(Image.Name.Bomb_Explosion, Texture.Name.Aliens, 700, 798, 84, 112); ImageManager.Add(Image.Name.Brick, Texture.Name.Shield, 20, 210, 10, 5); ImageManager.Add(Image.Name.BrickLeft_Top0, Texture.Name.Shield, 15, 180, 10, 5); ImageManager.Add(Image.Name.BrickLeft_Top1, Texture.Name.Shield, 15, 185, 10, 5); ImageManager.Add(Image.Name.BrickLeft_Bottom, Texture.Name.Shield, 35, 215, 10, 5); ImageManager.Add(Image.Name.BrickRight_Top0, Texture.Name.Shield, 75, 180, 10, 5); ImageManager.Add(Image.Name.BrickRight_Top1, Texture.Name.Shield, 75, 185, 10, 5); ImageManager.Add(Image.Name.BrickRight_Bottom, Texture.Name.Shield, 55, 215, 10, 5); //--------------------------------------------------------------------------------------------------------- // Create Sprites //--------------------------------------------------------------------------------------------------------- GameSpriteManager.Add(GameSprite.Name.Squid, Image.Name.Squid0, 400, 200, Constant.ALIEN_WIDTH - 10, Constant.ALIEN_HEIGHT); GameSpriteManager.Add(GameSprite.Name.Octopus, Image.Name.Octopus0, 50, 500, Constant.ALIEN_WIDTH, Constant.ALIEN_HEIGHT); GameSpriteManager.Add(GameSprite.Name.Crab, Image.Name.Crab0, 100, 300, Constant.ALIEN_WIDTH, Constant.ALIEN_HEIGHT); GameSpriteManager.Add(GameSprite.Name.Missile, Image.Name.Missile, Constant.WINDOW_WIDTH / 2, 0, 4, 20); GameSpriteManager.Add(GameSprite.Name.Player, Image.Name.Player, Constant.WINDOW_WIDTH / 2, 30, 40.0f, 25.0f); GameSpriteManager.Add(GameSprite.Name.BombStraight, Image.Name.BombStraight, Constant.WINDOW_WIDTH / 2, Constant.WINDOW_HEIGHT, 6, 25.0f); GameSpriteManager.Add(GameSprite.Name.BombCross, Image.Name.BombCross, Constant.WINDOW_WIDTH / 2, Constant.WINDOW_HEIGHT, 6, 25.0f); GameSpriteManager.Add(GameSprite.Name.BombZigZag, Image.Name.BombZigZag, Constant.WINDOW_WIDTH / 2, Constant.WINDOW_HEIGHT, 6, 25.0f); GameSpriteManager.Add(GameSprite.Name.UFO, Image.Name.UFO, Constant.WINDOW_WIDTH / 2, Constant.WINDOW_HEIGHT, 40, 20); GameSpriteManager.Add(GameSprite.Name.Missile_Explosion, Image.Name.Missile_Explosion, 0, 0, 10, 10); GameSpriteManager.Add(GameSprite.Name.UFO_Explosion, Image.Name.UFO_Explosion, Constant.WINDOW_WIDTH / 2, Constant.WINDOW_HEIGHT, 40, 20); GameSpriteManager.Add(GameSprite.Name.Player_Explosion, Image.Name.Player_Explosion1, Constant.WINDOW_WIDTH / 2, Constant.WINDOW_HEIGHT, 40, 25.0f); GameSpriteManager.Add(GameSprite.Name.Bomb_Explosion, Image.Name.Bomb_Explosion, Constant.WINDOW_WIDTH / 2, Constant.WINDOW_HEIGHT, 10, 10); GameSpriteManager.Add(GameSprite.Name.Alien_Explosion, Image.Name.Alien_Explosion2, Constant.WINDOW_WIDTH / 2, Constant.WINDOW_HEIGHT, Constant.ALIEN_WIDTH, Constant.ALIEN_HEIGHT); GameSpriteManager.Add(GameSprite.Name.Brick, Image.Name.Brick, 50, 25, Constant.SHIELD_BRICK_WIDTH, Constant.SHIELD_BRICK_HEIGHT); GameSpriteManager.Add(GameSprite.Name.BrickLeft_Top0, Image.Name.BrickLeft_Top0, 50, 25, Constant.SHIELD_BRICK_WIDTH, Constant.SHIELD_BRICK_HEIGHT); GameSpriteManager.Add(GameSprite.Name.BrickLeft_Top1, Image.Name.BrickLeft_Top1, 50, 25, Constant.SHIELD_BRICK_WIDTH, Constant.SHIELD_BRICK_HEIGHT); GameSpriteManager.Add(GameSprite.Name.BrickLeft_Bottom, Image.Name.BrickLeft_Bottom, 50, 25, Constant.SHIELD_BRICK_WIDTH, Constant.SHIELD_BRICK_HEIGHT); GameSpriteManager.Add(GameSprite.Name.BrickRight_Top0, Image.Name.BrickRight_Top0, 50, 25, Constant.SHIELD_BRICK_WIDTH, Constant.SHIELD_BRICK_HEIGHT); GameSpriteManager.Add(GameSprite.Name.BrickRight_Top1, Image.Name.BrickRight_Top1, 50, 25, Constant.SHIELD_BRICK_WIDTH, Constant.SHIELD_BRICK_HEIGHT); GameSpriteManager.Add(GameSprite.Name.BrickRight_Bottom, Image.Name.BrickRight_Bottom, 50, 25, Constant.SHIELD_BRICK_WIDTH, Constant.SHIELD_BRICK_HEIGHT); //--------------------------------------------------------------------------------------------------------- // Create SpriteBatch //--------------------------------------------------------------------------------------------------------- SpriteBatch pSB_Aliens = SpriteBatchManager.Add(SpriteBatch.Name.GameSprites); SpriteBatch pSB_Boxes = SpriteBatchManager.Add(SpriteBatch.Name.BoxSprites); SpriteBatch pSB_Shields = SpriteBatchManager.Add(SpriteBatch.Name.ShieldSprites); SpriteBatch pSB_Bombs = SpriteBatchManager.Add(SpriteBatch.Name.BombSprites); SpriteBatch pSB_Texts = SpriteBatchManager.Add(SpriteBatch.Name.TextSprite); SpriteBatch pSB_Effect = SpriteBatchManager.Add(SpriteBatch.Name.ExplosionEffectSprite); pSB_Boxes.GetSBNodeManager().ToggleDraw(); AlienGroup pAlienGroup = new AlienGroup(GameObject.Name.AlienGroup, GameSprite.Name.NullObject, -1, 0.0f, 0.0f); pSB_Boxes.Attach(pAlienGroup.pColObject.pBoxSprite); GameObjectManager.Attach(pAlienGroup); ShieldGroup pShieldGroup = new ShieldGroup(GameObject.Name.ShieldRoot, GameSprite.Name.NullObject, -1, 0.0f, 0.0f); pSB_Boxes.Attach(pShieldGroup.pColObject.pBoxSprite); GameObjectManager.Attach(pShieldGroup); AlienManager.Create(); ShieldNodeManager.Create(); GameSceneManager.Create(); GameScene.Create(); GameScene.SetGameScene(GameState.SceneName.Select); }
//----------------------------------------------------------------------------- // Game::LoadContent() // Allows you to load all content needed for your engine, // such as objects, graphics, etc. //----------------------------------------------------------------------------- public override void LoadContent() { // Initialize Game State Attributes hiScore = 0; numCredits = 0; twoPlayerMode = false; player1 = new Player(Player.Name.Player1); player2 = new Player(Player.Name.Player2); //--------------------------------------------------------------------------------------------------------- // Manager initialization //--------------------------------------------------------------------------------------------------------- TextureManager.Create(3, 1); ImageManager.Create(10, 2); SpriteManager.Create(10, 2); SpriteBoxManager.Create(20, 2); SpriteProxyManager.Create(50, 5); SpriteAnimationManager.Create(10, 2); TimerManager.Create(50, 10); CollisionPairManager.Create(10, 2); GlyphManager.Create(3, 1); FontManager.Create(5, 1); SoundEngineManager.Create(); //--------------------------------------------------------------------------------------------------------- // Initialize Game-Scoped Non-Singleton Managers //--------------------------------------------------------------------------------------------------------- this.pGameSpriteBatchManager = new SpriteBatchManager(3, 1); //--------------------------------------------------------------------------------------------------------- // Create Colors //--------------------------------------------------------------------------------------------------------- pRedColor = new Azul.Color(0.9019f, 0.0784f, 0.0784f, 1.0f); pGreenColor = new Azul.Color(0.1137f, 0.8196f, 0.2667f, 1.0f); //--------------------------------------------------------------------------------------------------------- // Load the Textures //--------------------------------------------------------------------------------------------------------- TextureManager.Add(Texture.Name.Aliens, "Aliens.tga"); TextureManager.Add(Texture.Name.Shield, "Shield.tga"); TextureManager.Add(Texture.Name.Consolas20pt, "Consolas20pt.tga"); TextureManager.Add(Texture.Name.Consolas36pt, "Consolas36pt.tga"); //--------------------------------------------------------------------------------------------------------- // Load the Fonts //--------------------------------------------------------------------------------------------------------- FontManager.AddXml(Glyph.Name.Consolas20pt, "Consolas20pt.xml", Texture.Name.Consolas20pt); FontManager.AddXml(Glyph.Name.Consolas36pt, "Consolas36pt.xml", Texture.Name.Consolas36pt); //--------------------------------------------------------------------------------------------------------- // Create Images //--------------------------------------------------------------------------------------------------------- // Aliens ImageManager.Add(Image.Name.OpenJellyfishAlien, Texture.Name.Aliens, 47.0f, 23.0f, 185.0f, 121.0f); ImageManager.Add(Image.Name.ClosedJellyfishAlien, Texture.Name.Aliens, 51.0f, 178.0f, 178.0f, 120.0f); ImageManager.Add(Image.Name.OpenCrabAlien, Texture.Name.Aliens, 316.0f, 24.0f, 167.0f, 119.0f); ImageManager.Add(Image.Name.ClosedCrabAlien, Texture.Name.Aliens, 316.0f, 179.0f, 167.0f, 119.0f); ImageManager.Add(Image.Name.OpenSquidAlien, Texture.Name.Aliens, 608.0f, 25.0f, 127.0f, 120.0f); ImageManager.Add(Image.Name.ClosedSquidAlien, Texture.Name.Aliens, 611.0f, 178.0f, 122.0f, 119.0f); ImageManager.Add(Image.Name.FlyingSaucer, Texture.Name.Aliens, 80.0f, 500.0f, 223.0f, 105.0f); // Shields ImageManager.Add(Image.Name.Brick, Texture.Name.Shield, 174, 110, 10, 5); ImageManager.Add(Image.Name.BrickLeft_Top0, Texture.Name.Shield, 153, 94, 10, 5); ImageManager.Add(Image.Name.BrickLeft_Top1, Texture.Name.Shield, 153, 99, 10, 5); ImageManager.Add(Image.Name.BrickLeft_Bottom, Texture.Name.Shield, 173, 129, 10, 5); ImageManager.Add(Image.Name.BrickRight_Top0, Texture.Name.Shield, 213, 94, 10, 5); ImageManager.Add(Image.Name.BrickRight_Top1, Texture.Name.Shield, 213, 99, 10, 5); ImageManager.Add(Image.Name.BrickRight_Bottom, Texture.Name.Shield, 193, 129, 10, 5); // Bombs ImageManager.Add(Image.Name.BombStraight, Texture.Name.Aliens, 378, 798, 15, 98); ImageManager.Add(Image.Name.BombZigZag, Texture.Name.Aliens, 574, 643, 42, 99); ImageManager.Add(Image.Name.BombCross, Texture.Name.Aliens, 112, 798, 42, 84); // Other ImageManager.Add(Image.Name.CoreCannon, Texture.Name.Aliens, 51.0f, 332.0f, 192.0f, 120.0f); ImageManager.Add(Image.Name.Missle, Texture.Name.Aliens, 419.0f, 699.0f, 16.0f, 58.0f); //--------------------------------------------------------------------------------------------------------- // Create Sprites //--------------------------------------------------------------------------------------------------------- // Aliens SpriteManager.Add(Sprite.Name.JellyfishAlien, Image.Name.OpenJellyfishAlien, 100.0f, 0.0f, 48.0f, 33.0f); SpriteManager.Add(Sprite.Name.CrabAlien, Image.Name.OpenCrabAlien, 100.0f, 200.0f, 45.0f, 30.0f); SpriteManager.Add(Sprite.Name.SquidAlien, Image.Name.OpenSquidAlien, 300.0f, 200.0f, 33.0f, 30.0f); SpriteManager.Add(Sprite.Name.FlyingSaucer, Image.Name.FlyingSaucer, 400.0f, 500.0f, 58.0f, 28.0f, pRedColor); SpriteManager.Add(Sprite.Name.GiantCrabAlien, Image.Name.OpenCrabAlien, 100.0f, 200.0f, 180.0f, 120.0f, pGreenColor); // Shields SpriteManager.Add(Sprite.Name.Brick, Image.Name.Brick, 50, 25, 12, 6); SpriteManager.Add(Sprite.Name.Brick_LeftTop0, Image.Name.BrickLeft_Top0, 50, 25, 12, 6); SpriteManager.Add(Sprite.Name.Brick_LeftTop1, Image.Name.BrickLeft_Top1, 50, 25, 12, 6); SpriteManager.Add(Sprite.Name.Brick_LeftBottom, Image.Name.BrickLeft_Bottom, 50, 25, 12, 6); SpriteManager.Add(Sprite.Name.Brick_RightTop0, Image.Name.BrickRight_Top0, 50, 25, 12, 6); SpriteManager.Add(Sprite.Name.Brick_RightTop1, Image.Name.BrickRight_Top1, 50, 25, 12, 6); SpriteManager.Add(Sprite.Name.Brick_RightBottom, Image.Name.BrickRight_Bottom, 50, 25, 12, 6); // Bombs SpriteManager.Add(Sprite.Name.BombZigZag, Image.Name.BombZigZag, 200, 200, 10, 20); SpriteManager.Add(Sprite.Name.BombStraight, Image.Name.BombStraight, 100, 100, 5, 20); SpriteManager.Add(Sprite.Name.BombCross, Image.Name.BombCross, 100, 100, 10, 20); // Other SpriteManager.Add(Sprite.Name.CoreCannon, Image.Name.CoreCannon, 400.0f, 40.0f, 50.0f, 30.0f, pGreenColor); SpriteManager.Add(Sprite.Name.Missile, Image.Name.Missle, 400.0f, 70.0f, 4.0f, 14.0f); //--------------------------------------------------------------------------------------------------------- // Sprite Animations //--------------------------------------------------------------------------------------------------------- // Squid Alien SpriteAnimation pSquidAnimation = SpriteAnimationManager.Add(SpriteAnimation.Name.SquidAlien, Sprite.Name.SquidAlien); pSquidAnimation.Attach(Image.Name.ClosedSquidAlien); pSquidAnimation.Attach(Image.Name.OpenSquidAlien); // Crab Alien SpriteAnimation pCrabAnimation = SpriteAnimationManager.Add(SpriteAnimation.Name.CrabAlien, Sprite.Name.CrabAlien); pCrabAnimation.Attach(Image.Name.ClosedCrabAlien); pCrabAnimation.Attach(Image.Name.OpenCrabAlien); // JellyFish Alien SpriteAnimation pJellyfishAnimation = SpriteAnimationManager.Add(SpriteAnimation.Name.JellyfishAlien, Sprite.Name.JellyfishAlien); pJellyfishAnimation.Attach(Image.Name.ClosedJellyfishAlien); pJellyfishAnimation.Attach(Image.Name.OpenJellyfishAlien); //--------------------------------------------------------------------------------------------------------- // Create Game-Scoped SpriteBatches //--------------------------------------------------------------------------------------------------------- pGameTexts_SpriteBatch = this.pGameSpriteBatchManager.Add(SpriteBatch.Name.GameTexts); FontManager.Add(Font.Name.Player1ScoreTitle, pGameTexts_SpriteBatch, "SCORE <1>", Glyph.Name.Consolas36pt, 50, 825); FontManager.Add(Font.Name.Player2ScoreTitle, pGameTexts_SpriteBatch, "SCORE <2>", Glyph.Name.Consolas36pt, 650, 825); FontManager.Add(Font.Name.HighScoreTitle, pGameTexts_SpriteBatch, "HI-SCORE", Glyph.Name.Consolas36pt, 350, 825); FontManager.Add(Font.Name.Player1Score, pGameTexts_SpriteBatch, GameStateManager.GetGame().GetPlayer(Player.Name.Player1).GetPoints().ToString("D4"), Glyph.Name.Consolas36pt, 80, 775); FontManager.Add(Font.Name.Player2Score, pGameTexts_SpriteBatch, GameStateManager.GetGame().GetPlayer(Player.Name.Player2).GetPoints().ToString("D4"), Glyph.Name.Consolas36pt, 680, 775); FontManager.Add(Font.Name.HighScore, pGameTexts_SpriteBatch, GameStateManager.GetGame().GetHiScore().ToString("D4"), Glyph.Name.Consolas36pt, 380, 775); FontManager.Add(Font.Name.GameCredits, pGameTexts_SpriteBatch, "CREDIT " + GameStateManager.GetGame().GetNumCredits(), Glyph.Name.Consolas36pt, 650, 50); //--------------------------------------------------------------------------------------------------------- // Load State-specific content //--------------------------------------------------------------------------------------------------------- GameStateManager.GetState(GameStateManager.GameState.Attract).LoadContent(); GameStateManager.GetState(GameStateManager.GameState.Player1).LoadContent(); GameStateManager.GetState(GameStateManager.GameState.Player2).LoadContent(); GameStateManager.GetState(GameStateManager.GameState.End).LoadContent(); // Game State -- Initialize in Attract mode this.pGameState = GameStateManager.GetState(GameStateManager.GameState.Attract); this.AttachStateInputObservers(); }
//----------------------------------------------------------------------------- // Game::LoadContent() // Allows you to load all content needed for your engine, // such as objects, graphics, etc. //----------------------------------------------------------------------------- public override void LoadContent() { ScreenWidth = this.GetScreenWidth(); ScreenHeight = this.GetScreenHeight(); //--------------------------------------------------------------------------------------------------------- // Init Managers //--------------------------------------------------------------------------------------------------------- //Constant Managers TextureManager.Create(1, 1); ImageManager.Create(5, 2); SoundManager.Create(3, 1); GameSpriteManager.Create(4, 2); BoxSpriteManager.Create(3, 1); CollisionStateManager.Create(); GlyphManager.Create(3, 1); Simulation.Create(); RandomManager.Create(); BombManager.Create(); ShipManager.Create(); //State-unique Managers SpriteBatchManager.Create(); GameObjectManager.Create(); InputManager.Create(); FontManager.Create(); TimerManager.Create(); CollisionPairManager.Create(); //ProxySpriteManager.Create(10, 1);//not in use currently //--------------------------------------------------------------------------------------------------------- // Load the Textures //--------------------------------------------------------------------------------------------------------- TextureManager.Add(Texture.Name.SpaceInvaders, "SpaceInvaders.tga"); //--------------------------------------------------------------------------------------------------------- // Load Sounds //--------------------------------------------------------------------------------------------------------- SoundManager.Add(Sound.Name.Invader1, "fastinvader1.wav"); SoundManager.Add(Sound.Name.Invader2, "fastinvader2.wav"); SoundManager.Add(Sound.Name.Invader3, "fastinvader3.wav"); SoundManager.Add(Sound.Name.Invader4, "fastinvader4.wav"); SoundManager.Add(Sound.Name.Shoot, "invaderkilled.wav"); SoundManager.Add(Sound.Name.DeadAlien, "shoot.wav"); SoundManager.Add(Sound.Name.UFO, "ufo_highpitch.wav"); SoundManager.Add(Sound.Name.UFOExplosion, "ufo_lowpitch.wav"); SoundManager.Add(Sound.Name.Explosion, "explosion.wav"); //--------------------------------------------------------------------------------------------------------- // Create Images //--------------------------------------------------------------------------------------------------------- // --- aliens --- ImageManager.Add(Image.Name.OctopusA, Texture.Name.SpaceInvaders, 3, 3, 12, 8); ImageManager.Add(Image.Name.OctopusB, Texture.Name.SpaceInvaders, 18, 3, 12, 8); ImageManager.Add(Image.Name.AlienA, Texture.Name.SpaceInvaders, 33, 3, 11, 8); ImageManager.Add(Image.Name.AlienB, Texture.Name.SpaceInvaders, 47, 3, 11, 8); ImageManager.Add(Image.Name.SquidA, Texture.Name.SpaceInvaders, 61, 3, 8, 8); ImageManager.Add(Image.Name.SquidB, Texture.Name.SpaceInvaders, 72, 3, 8, 8); ImageManager.Add(Image.Name.Saucer, Texture.Name.SpaceInvaders, 99, 3, 16, 8); ImageManager.Add(Image.Name.Missile, Texture.Name.SpaceInvaders, 3, 29, 1, 4); ImageManager.Add(Image.Name.Ship, Texture.Name.SpaceInvaders, 3, 14, 13, 8); ImageManager.Add(Image.Name.AlienExplosion, Texture.Name.SpaceInvaders, 83, 3, 13, 8); ImageManager.Add(Image.Name.SaucerExplosion, Texture.Name.SpaceInvaders, 118, 3, 21, 8); ImageManager.Add(Image.Name.ShipExplosionA, Texture.Name.SpaceInvaders, 19, 14, 16, 8); ImageManager.Add(Image.Name.ShipExplosionB, Texture.Name.SpaceInvaders, 38, 14, 16, 8); ImageManager.Add(Image.Name.MissileExplosion, Texture.Name.SpaceInvaders, 7, 25, 8, 8); ImageManager.Add(Image.Name.BombExplosion, Texture.Name.SpaceInvaders, 86, 25, 6, 8); ImageManager.Add(Image.Name.BombDagger, Texture.Name.SpaceInvaders, 42, 27, 3, 6); ImageManager.Add(Image.Name.BombZigZag, Texture.Name.SpaceInvaders, 18, 26, 3, 7); ImageManager.Add(Image.Name.BombStraight, Texture.Name.SpaceInvaders, 65, 26, 3, 7); ImageManager.Add(Image.Name.ShieldBrick, Texture.Name.SpaceInvaders, 120, 35, 4, 2); ImageManager.Add(Image.Name.ShieldBrick_LeftTop0, Texture.Name.SpaceInvaders, 115, 30, 4, 2); ImageManager.Add(Image.Name.ShieldBrick_LeftTop1, Texture.Name.SpaceInvaders, 116, 31, 4, 2); ImageManager.Add(Image.Name.ShieldBrick_LeftBottom, Texture.Name.SpaceInvaders, 119, 43, 4, 2); ImageManager.Add(Image.Name.ShieldBrick_RightTop0, Texture.Name.SpaceInvaders, 132, 31, 4, 2); ImageManager.Add(Image.Name.ShieldBrick_RightTop1, Texture.Name.SpaceInvaders, 130, 31, 4, 2); ImageManager.Add(Image.Name.ShieldBrick_RightBottom, Texture.Name.SpaceInvaders, 126, 43, 4, 2); //--------------------------------------------------------------------------------------------------------- // Create Glyphs //--------------------------------------------------------------------------------------------------------- GlyphManager.Add(Glyph.Name.Space, 32, Texture.Name.SpaceInvaders, 99, 56, 5, 7); GlyphManager.Add(Glyph.Name.Asterisk, 42, Texture.Name.SpaceInvaders, 115, 56, 5, 7); GlyphManager.Add(Glyph.Name.Hyphen, 45, Texture.Name.SpaceInvaders, 131, 56, 5, 7); GlyphManager.Add(Glyph.Name.Zero, 48, Texture.Name.SpaceInvaders, 3, 56, 5, 7); GlyphManager.Add(Glyph.Name.One, 49, Texture.Name.SpaceInvaders, 11, 56, 5, 7); GlyphManager.Add(Glyph.Name.Two, 50, Texture.Name.SpaceInvaders, 19, 56, 5, 7); GlyphManager.Add(Glyph.Name.Three, 51, Texture.Name.SpaceInvaders, 27, 56, 5, 7); GlyphManager.Add(Glyph.Name.Four, 52, Texture.Name.SpaceInvaders, 35, 56, 5, 7); GlyphManager.Add(Glyph.Name.Five, 53, Texture.Name.SpaceInvaders, 43, 56, 5, 7); GlyphManager.Add(Glyph.Name.Six, 54, Texture.Name.SpaceInvaders, 51, 56, 5, 7); GlyphManager.Add(Glyph.Name.Seven, 55, Texture.Name.SpaceInvaders, 59, 56, 5, 7); GlyphManager.Add(Glyph.Name.Eight, 56, Texture.Name.SpaceInvaders, 67, 56, 5, 7); GlyphManager.Add(Glyph.Name.Nine, 57, Texture.Name.SpaceInvaders, 75, 56, 5, 7); GlyphManager.Add(Glyph.Name.LessThan, 60, Texture.Name.SpaceInvaders, 83, 56, 5, 7); GlyphManager.Add(Glyph.Name.Equals, 61, Texture.Name.SpaceInvaders, 107, 56, 5, 7); GlyphManager.Add(Glyph.Name.GreaterThan, 62, Texture.Name.SpaceInvaders, 91, 56, 5, 7); GlyphManager.Add(Glyph.Name.Question, 63, Texture.Name.SpaceInvaders, 123, 56, 5, 7); GlyphManager.Add(Glyph.Name.A, 65, Texture.Name.SpaceInvaders, 3, 36, 5, 7); GlyphManager.Add(Glyph.Name.B, 66, Texture.Name.SpaceInvaders, 11, 36, 5, 7); GlyphManager.Add(Glyph.Name.C, 67, Texture.Name.SpaceInvaders, 19, 36, 5, 7); GlyphManager.Add(Glyph.Name.D, 68, Texture.Name.SpaceInvaders, 27, 36, 5, 7); GlyphManager.Add(Glyph.Name.E, 69, Texture.Name.SpaceInvaders, 35, 36, 5, 7); GlyphManager.Add(Glyph.Name.F, 70, Texture.Name.SpaceInvaders, 43, 36, 5, 7); GlyphManager.Add(Glyph.Name.G, 71, Texture.Name.SpaceInvaders, 51, 36, 5, 7); GlyphManager.Add(Glyph.Name.H, 72, Texture.Name.SpaceInvaders, 59, 36, 5, 7); GlyphManager.Add(Glyph.Name.I, 73, Texture.Name.SpaceInvaders, 67, 36, 5, 7); GlyphManager.Add(Glyph.Name.J, 74, Texture.Name.SpaceInvaders, 75, 36, 5, 7); GlyphManager.Add(Glyph.Name.K, 75, Texture.Name.SpaceInvaders, 83, 36, 5, 7); GlyphManager.Add(Glyph.Name.L, 76, Texture.Name.SpaceInvaders, 91, 36, 5, 7); GlyphManager.Add(Glyph.Name.M, 77, Texture.Name.SpaceInvaders, 99, 36, 5, 7); GlyphManager.Add(Glyph.Name.N, 78, Texture.Name.SpaceInvaders, 3, 46, 5, 7); GlyphManager.Add(Glyph.Name.O, 79, Texture.Name.SpaceInvaders, 11, 46, 5, 7); GlyphManager.Add(Glyph.Name.P, 80, Texture.Name.SpaceInvaders, 19, 46, 5, 7); GlyphManager.Add(Glyph.Name.Q, 81, Texture.Name.SpaceInvaders, 27, 46, 5, 7); GlyphManager.Add(Glyph.Name.R, 82, Texture.Name.SpaceInvaders, 35, 46, 5, 7); GlyphManager.Add(Glyph.Name.S, 83, Texture.Name.SpaceInvaders, 43, 46, 5, 7); GlyphManager.Add(Glyph.Name.T, 84, Texture.Name.SpaceInvaders, 51, 46, 5, 7); GlyphManager.Add(Glyph.Name.U, 85, Texture.Name.SpaceInvaders, 59, 46, 5, 7); GlyphManager.Add(Glyph.Name.V, 86, Texture.Name.SpaceInvaders, 67, 46, 5, 7); GlyphManager.Add(Glyph.Name.W, 87, Texture.Name.SpaceInvaders, 75, 46, 5, 7); GlyphManager.Add(Glyph.Name.X, 88, Texture.Name.SpaceInvaders, 83, 46, 5, 7); GlyphManager.Add(Glyph.Name.Y, 89, Texture.Name.SpaceInvaders, 91, 46, 5, 7); GlyphManager.Add(Glyph.Name.Z, 90, Texture.Name.SpaceInvaders, 99, 46, 5, 7); //--------------------------------------------------------------------------------------------------------- // Create Sprites //--------------------------------------------------------------------------------------------------------- // --- aliens --- GameSpriteManager.Add(GameSprite.Name.PurpleOctopus, Image.Name.OctopusA, 50, 300, 49, 33); GameSpriteManager.Add(GameSprite.Name.BlueCrab, Image.Name.AlienB, 200, 100, 45, 33); GameSpriteManager.Add(GameSprite.Name.GreenSquid, Image.Name.SquidA, 200, 300, 33, 33); GameSpriteManager.Add(GameSprite.Name.OrangeSaucer, Image.Name.Saucer, 50, 550, 59, 33, new Azul.Color(1.0f, 0.0f, 0.0f, 1.0f)); //-----Missile---- GameSpriteManager.Add(GameSprite.Name.Missile, Image.Name.Missile, 50, 50, 3, 15); //----Player Ship---- GameSpriteManager.Add(GameSprite.Name.Ship, Image.Name.Ship, 500, 100, 50, 30, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); //---Explosions--- GameSpriteManager.Add(GameSprite.Name.AlienExplosion, Image.Name.AlienExplosion, 50, 50, 33, 33); GameSpriteManager.Add(GameSprite.Name.ShipExplosion, Image.Name.ShipExplosionA, 50, 50, 55, 35); GameSpriteManager.Add(GameSprite.Name.SaucerExplosion, Image.Name.SaucerExplosion, 50, 50, 45, 35, new Azul.Color(1.0f, 0.0f, 0.0f, 1.0f)); GameSpriteManager.Add(GameSprite.Name.BombExplosion, Image.Name.BombExplosion, 50, 50, 25, 25); GameSpriteManager.Add(GameSprite.Name.MissileExplosionRed, Image.Name.MissileExplosion, 50, 50, 20, 20, new Azul.Color(1.0f, 0.0f, 0.0f, 1.0f)); GameSpriteManager.Add(GameSprite.Name.MissileExplosionGreen, Image.Name.MissileExplosion, 50, 50, 20, 20, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); GameSpriteManager.Add(GameSprite.Name.MissileExplosionWhite, Image.Name.MissileExplosion, 50, 50, 20, 20); //----Bombs---- GameSpriteManager.Add(GameSprite.Name.BombDagger, Image.Name.BombDagger, 50, 50, 10, 25); GameSpriteManager.Add(GameSprite.Name.BombZigZag, Image.Name.BombZigZag, 50, 50, 10, 25); GameSpriteManager.Add(GameSprite.Name.BombStraight, Image.Name.BombStraight, 50, 50, 10, 25); //----Shield---- GameSpriteManager.Add(GameSprite.Name.ShieldBrick, Image.Name.ShieldBrick, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); GameSpriteManager.Add(GameSprite.Name.ShieldBrick_LeftTop0, Image.Name.ShieldBrick_LeftTop0, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); GameSpriteManager.Add(GameSprite.Name.ShieldBrick_LeftTop1, Image.Name.ShieldBrick_LeftTop1, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); GameSpriteManager.Add(GameSprite.Name.ShieldBrick_LeftBottom, Image.Name.ShieldBrick_LeftBottom, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); GameSpriteManager.Add(GameSprite.Name.ShieldBrick_RightTop0, Image.Name.ShieldBrick_RightTop0, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); GameSpriteManager.Add(GameSprite.Name.ShieldBrick_RightTop1, Image.Name.ShieldBrick_RightTop1, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); GameSpriteManager.Add(GameSprite.Name.ShieldBrick_RightBottom, Image.Name.ShieldBrick_RightBottom, 50, 25, 12, 7, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); //----Ground---- GameSpriteManager.Add(GameSprite.Name.Ground, Image.Name.ShieldBrick, 50, 50, SpaceInvaders.ScreenWidth - 10, 5, new Azul.Color(0.0f, 1.0f, 0.0f, 1.0f)); //-------------------------------------------------------------------------- //Create Scenes //-------------------------------------------------------------------------- pHiScore = 0; pPlayer1Score = 0; pPlayer2Score = 0; pSceneContext = new SceneContext(); }