private void handleBulletCollision(Bullet i_Bullet) { PlayerSpaceInvaders player = SpaceInvadersServices.GetPlayerComponent(this.Game, SerialNumber); if (player != null) { player.LoseLife(); int remainingPlayerLifes = player.Lifes; this.Position = new Vector2(0, this.Position.Y); if (remainingPlayerLifes == 0) { this.isDying = true; LastAnimation(); } else { this.Position = new Vector2(0, this.Position.Y); this.Animations["BlinkAnimator"].Reset(); this.Animations["BlinkAnimator"].Resume(); } this.GameScreen.Remove(i_Bullet); i_Bullet.Dispose(); } }
private bool isAllowedToShoot() { return(!this.isDying && (SpaceInvadersServices.GetShootingSpriteAmountOfAliveBullets(this.GameScreen, this) < r_MaxAmountOfBulletsAtOnec) && (m_LastBTNState == ButtonState.Pressed && Configuration.IsMouseMovementEnable && m_InputManager.MouseState.LeftButton == ButtonState.Released || m_InputManager.KeyPressed(Configuration.KeysShoot))); }
private void moveLevel() { m_CurrentLevel++; SpaceInvadersServices.ClearComponents <Enemy>(this); SpaceInvadersServices.ClearComponents <Barrier>(this); SpaceInvadersServices.ClearComponents <Bullet>(this); EnemiesMatrix enemyMatrix = SpaceInvadersServices.GetEnemeiesMatrixComponent(this); BarrierGroup barrierGroup = SpaceInvadersServices.GetBarrierGroupComponent(this); enemyMatrix.Initialize(); barrierGroup.Initialize(); SpaceInvadersServices.ChangeBarriersGroupVerticalPosition(this, barrierGroup); int state = m_CurrentLevel % 5; if (state >= 2 && state <= 5) { enemyMatrix.AddEnemiesColumn(); enemyMatrix.IncraseEnemiesRandomShotting(); enemyMatrix.AddPointsForEnemyKilling(30); barrierGroup.StartJumpingBarriers(); barrierGroup.Speedup(0.05f); if (state == 2) { barrierGroup.ChangeToDefaultJumpingSpeed(); } } else { barrierGroup.StopJumpingBarriers(); } this.ScreensManager.SetCurrentScreen(new MoveStageScreen(this.Game, m_CurrentLevel)); }
public override void Update(GameTime gameTime) { if (InputManager.KeyPressed(Keys.P)) { m_ScreensManager.SetCurrentScreen(new PauseScreen(this.Game)); } bool isGameOver = SpaceInvadersServices.IsAllPlayersLost(this.Game); if (isGameOver) { m_GameOverSound.Play(); SpaceInvadersServices.GameOver(this.Game); } bool PlayersWon = !SpaceInvadersServices.IsAnyEnemiesLeft(this); if (PlayersWon) { m_WonLevelSound.Play(); moveLevel(); } base.Update(gameTime); }
public void ShootBullet(Color i_Color) { if (SpaceInvadersServices.GetShootingSpriteAmountOfAliveBullets(this.GameScreen, this) == 0) { getAndShootBullet(i_Color, r_BulletVelocity); m_ShootSound.Play(); } }
public void CreatePlayers(GameScreen i_GameScreen) { ConfSpaceShip player1SpaceShipConf = new ConfSpaceShip(PlayerSpaceInvaders.eSpaceShipType.Green, Keys.Left, Keys.Right, new Keys[] { Keys.Enter, Keys.RightControl, Keys.LeftControl }, v_IsMouseMoveEnable); if (m_PlayerCount.Equals(ePlayers.One)) { SpaceInvadersServices.CreateNewPlayers(i_GameScreen, player1SpaceShipConf); } else { ConfSpaceShip player2SpaceShipConf = new ConfSpaceShip(PlayerSpaceInvaders.eSpaceShipType.Blue, Keys.A, Keys.D, Keys.W, !v_IsMouseMoveEnable); SpaceInvadersServices.CreateNewPlayers(i_GameScreen, player1SpaceShipConf, player2SpaceShipConf); } }
public override void Collided(ICollidable i_Collidable) { Enemy enemy = i_Collidable as Enemy; Bullet bullet = i_Collidable as Bullet; if (enemy != null) { if (!this.ShootingSpriteType.Name.Equals("Enemy")) { if (!enemy.isDying) { Player player = SpaceInvadersServices.GetPlayerComponent(this.Game, this.GunSerialNumber); EnemiesMatrix enemiesMatrix = SpaceInvadersServices.GetEnemeiesMatrixComponent(this.GameScreen); enemiesMatrix.SpeedUp(0.92); enemy.LastAnimation(); if (player != null) { player.AddScore(enemy.Points); } enemy.Dispose(); } this.GameScreen.Remove(this); this.Dispose(); } } else if (bullet != null) { if (!bullet.ShootingSpriteType.Name.Equals(this.ShootingSpriteType.Name)) { if (this.ShootingSpriteType.Name.Equals("SpaceShip")) { this.GameScreen.Remove(this); this.Dispose(); } else if (this.ShootingSpriteType.Name.Equals("Enemy")) { int randomNumber = new Random().Next(1, 10); if (randomNumber == 1) { this.GameScreen.Remove(this); this.Dispose(); } } } } }
public override void Initialize() { initilizeOnFirstRun(); SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.MotherShip); SpritesFactory.CreateSprite(this, SpritesFactory.eSpriteType.SpaceBackground); EnemiesMatrix enemiesMatrix = new EnemiesMatrix(this); BarrierGroup barrierGroup = new BarrierGroup(this); m_MultiPlayerConfiguration = SpaceInvadersServices.GetMultiPlayerConfiguration(this.Game); m_MultiPlayerConfiguration.CreatePlayers(this); m_WonLevelSound = SoundFactory.CreateSound(this, SoundFactory.eSoundType.LevelWin); m_GameOverSound = SoundFactory.CreateSound(this, SoundFactory.eSoundType.GameOver); this.Add(enemiesMatrix); this.Add(barrierGroup); base.Initialize(); SpaceInvadersServices.ChangeBarriersGroupVerticalPosition(this, barrierGroup); }
public override void Collided(ICollidable i_Collidable) { Bullet bullet = i_Collidable as Bullet; if (bullet != null && !this.isDying) { this.Velocity = new Vector2(0); isDying = true; m_SoundWhenKilled.Play(); LastAnimation(); PlayerSpaceInvaders player = SpaceInvadersServices.GetPlayerComponent(this.Game, bullet.GunSerialNumber); if (player != null) { player.AddScore(Points); } this.GameScreen.Remove(bullet); bullet.Dispose(); } }
public override void Collided(ICollidable i_Collidable) { Enemy enemy = i_Collidable as Enemy; if (enemy != null) { SpaceInvadersServices.GameOver(this.Game); this.GameScreen.Remove(enemy); enemy.Dispose(); } Bullet bullet = i_Collidable as Bullet; if (bullet != null && !isDying) { if (!bullet.ShootingSpriteType.Name.Equals("SpaceShip")) { handleBulletCollision(bullet); } } }
private void fadeOutAnimator_Finished(object sender, EventArgs e) { this.Animations.Pause(); SpaceInvadersServices.GetPlayerComponent(this.Game, SerialNumber).SpaceShip.Visible = false; SpaceInvadersServices.GetPlayerComponent(this.Game, SerialNumber).SpaceShip.Enabled = false; }
protected override void Dispose(bool disposing) { base.Dispose(disposing); SpaceInvadersServices.GetEnemeiesMatrixComponent(this.GameScreen).Remove(this); }
public MainMenuScreen(Game i_Game) : base(i_Game, "Main Menu") { m_MultiPlayerConfiguration = SpaceInvadersServices.GetMultiPlayerConfiguration(this.Game); this.Game.IsMouseVisible = true; }
private void enemy_TouchedEndOfTheScreen(object sender, EventArgs e) { SpaceInvadersServices.GameOver(this.Game); }
public SoundOptionsScreen(Game i_Game) : base(i_Game, "Sound Options") { m_SpaceInvadersSoundsManager = SpaceInvadersServices.GetSoundManager(this.Game); }
public ScreenOptionsScreen(Game i_Game) : base(i_Game, "Screen Options") { m_ScreenOptionsMng = SpaceInvadersServices.GetScreenOptionsManager(this.Game); }