public override void Update() { if (GameManager.GetGame().GetState() is GameActiveState) { GameObject ship = ShipManager.GetShip(); if (ship != null) { ship.Remove(); GameObject pShipRoot = GameObjectManager.Find(GameObjectName.ShipRoot); pShipRoot.Remove(); } Alien pExplosion = new Explosion(GameObjectName.Explosion, SpriteBaseName.Explosion, AlienType.Explosion, ship, ColorName.Green, 0); SpriteBatch sbAliens = SpriteBatchManager.Find(SpriteBatchName.Aliens); SpriteBatch sbBoxes = SpriteBatchManager.Find(SpriteBatchName.Boxes); pExplosion.ActivateGameSprite(sbAliens); pExplosion.ActivateCollisionSprite(sbBoxes); GameObjectManager.AttachTree(pExplosion); Game pGame = GameManager.GetGame(); pGame.roundNum = 1; ScoreManager.ClearLives(); TimerManager.ClearTimerManager(); pExplosion.Remove(); pGame.Die(); TimerManager.Add(TimerEventName.GameStart, TimerManager.GetCurrentTime() + 10.0f, 10.0f, new GameStartEvent(pGame)); } }
private void SpawnUFO() { int random = UFOManager.GetRandom().Next(7, 10); this.pUFO = UFOManager.ActivateUFO(GameManager.GetCollisionBoxes()); TimerManager.Add(TimerEventName.PlayUFOSound, TimerManager.GetCurrentTime() + 0.2f, 0.2f, new StartUFOSoundCommand()); TimerManager.Add(TimerEventName.UFOSpawnBomb, TimerManager.GetCurrentTime() + (float)UFOManager.GetRandom().Next(1, 6), TimerManager.GetCurrentTime() + (float)UFOManager.GetRandom().Next(1, 6), new UFOBombSpawnEvent()); }
public override void Leaving() { Font pHighScore = FontManager.Find(Font.Name.HighScore); Score.SaveHighScore(pHighScore); // update SpriteBatchMan() this.TimeAtPause = TimerManager.GetCurrentTime(); }
//---------------------------------------------------------------- // Methods //---------------------------------------------------------------- public void Set(Name name, Command inCommand, float deltaTime) { Debug.Assert(inCommand != null); this.name = name; this.pCommand = inCommand; this.deltaTime = deltaTime; this.triggerTime = TimerManager.GetCurrentTime() + deltaTime; }
//---------------------------------------------------------------------------------- // Methods //---------------------------------------------------------------------------------- public void Set(TimeEvent.Name eventName, Command pCmd, float deltaTimeToTrigger) { Debug.Assert(pCmd != null); this.name = eventName; this.pCommand = pCmd; this.deltaTime = deltaTimeToTrigger; // set the trigger time this.triggerTime = TimerManager.GetCurrentTime() + deltaTimeToTrigger; }
public override void Update() { //Debug.WriteLine("RemoveShipObserver: {0} {1}", this.pSubject.goA, this.pSubject.goB); GameObject ship = ShipManager.GetShip(); if (ship != null) { ship.Remove(); GameObject pShipRoot = GameObjectManager.Find(GameObjectName.ShipRoot); pShipRoot.Remove(); } Alien pExplosion = new Explosion(GameObjectName.Explosion, SpriteBaseName.Explosion, AlienType.Explosion, ship, ColorName.Green, 0); SpriteBatch sbAliens = SpriteBatchManager.Find(SpriteBatchName.Aliens); SpriteBatch sbBoxes = SpriteBatchManager.Find(SpriteBatchName.Boxes); pExplosion.ActivateGameSprite(sbAliens); pExplosion.ActivateCollisionSprite(sbBoxes); GameObjectManager.AttachTree(pExplosion); Game pGame = GameManager.GetGame(); //pGame.Pause(); int lives = ScoreManager.UpdateLives(); if (lives == 0) { pGame.roundNum = 1; TimerManager.ClearTimerManager(); pExplosion.Remove(); pGame.Die(); TimerManager.Add(TimerEventName.GameStart, TimerManager.GetCurrentTime() + 10.0f, 10.0f, new GameStartEvent(pGame)); } else { TimerManager.Add(TimerEventName.RemoveGameObject, TimerManager.GetCurrentTime(), TimerManager.GetCurrentTime(), new RemoveGameObjectCommand(pExplosion)); PCSTree pRootTree = GameObjectManager.GetRootTree(); //ShipRoot pShipRoot = (ShipRoot)GameObjectManager.Find(GameObjectName.ShipRoot); //pShipRoot.ActivateCollisionSprite(sbBoxes); //pShipRoot.ActivateGameSprite(sbAliens); ShipManager.Create(GameManager.GetCollisionBoxes()); } }
public override void Update() { UFORoot pUFORoot = (UFORoot)this.pSubject.goA; UFO pUFO = (UFO)pUFORoot.pChild; if (pUFO != null) { Wall pWall = (Wall)this.pSubject.goB; if ((pUFO.pStrategy is UFOMoveLeft && pWall.gameObjectName == GameObjectName.WallLeft) || (pUFO.pStrategy is UFOMoveRight && pWall.gameObjectName == GameObjectName.WallRight)) { if (UFOManager.IsUFOActive()) { Debug.WriteLine("RemoveUFO TimerEvent added for {0}", pUFO.GetHashCode()); TimerManager.Add(TimerEventName.RemoveUFO, TimerManager.GetCurrentTime() + 1.0f, TimerManager.GetCurrentTime() + 1.0f, new RemoveUFOCommand()); TimerManager.Add(TimerEventName.StopUFOSound, TimerManager.GetCurrentTime() + 0.5f, TimerManager.GetCurrentTime() + 0.5f, new StopUFOSoundCommand()); } //pUFO.Remove(); //pUFORoot.Remove(); } } }
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()); }
public override void Update() { GameObject gameObjectA = this.pSubject.goA; GameObject gameObjectB = this.pSubject.goB; GameObject go = Missile.GetNonMissile(gameObjectA, gameObjectB); ColorName pColorName = ColorName.White; if (go.gameObjectName == GameObjectName.Bomb) { pColorName = ColorName.Orange; } else if (go.gameObjectName == GameObjectName.UFO) { pColorName = ColorName.Red; } else if (go.gameObjectName == GameObjectName.UFOBomb) { pColorName = ColorName.Yellow; } Alien pExplosion = new Explosion(GameObjectName.Splat, SpriteBaseName.Splat, AlienType.Splat, gameObjectB, pColorName, 0); SpriteBatch sbAliens = SpriteBatchManager.Find(SpriteBatchName.Aliens); SpriteBatch sbBoxes = SpriteBatchManager.Find(SpriteBatchName.Boxes); pExplosion.ActivateGameSprite(sbAliens); pExplosion.ActivateCollisionSprite(sbBoxes); GameObjectManager.AttachTree(pExplosion); TimerManager.Add(TimerEventName.RemoveGameObject, TimerManager.GetCurrentTime(), TimerManager.GetCurrentTime(), new RemoveGameObjectCommand(pExplosion)); }
public override void Leaving() { // update SpriteBatchMan() this.TimeAtPause = TimerManager.GetCurrentTime(); }
// Constructor public SceneState() { this.TimeAtPause = TimerManager.GetCurrentTime(); }
public override void Start(Game pGame) { ScoreManager.ClearScore(); this.Handle(pGame); TimerManager.Add(TimerEventName.SetGameState, TimerManager.GetCurrentTime() + 5.0f, TimerManager.GetCurrentTime() + 5.0f, new GameSelectEvent()); }