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 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(); } } } } }
protected override void Dispose(bool disposing) { base.Dispose(disposing); SpaceInvadersServices.GetEnemeiesMatrixComponent(this.GameScreen).Remove(this); }