/// <summary> /// Constructor. /// </summary> /// <param name="enemyListModel">Enemy list model</param> /// <param name="playerModel">Player model</param> /// <param name="reset">Controller implementing IReset interface</param> public EnemyController(EnemyListModel enemyListModel, PlayerModel playerModel, IReset reset, ContentManager contentManager) { _enemyListModel = enemyListModel; _playerModel = playerModel; _reset = reset; _playerDies = contentManager.Load <SoundEffect>("playerdies"); }
public BulletController(BulletListModel bulletListModel, PlayerModel playerModel, EnemyListModel enemyListModel, IReset reset, ContentManager contentManager) { _bulletListModel = bulletListModel; _playerModel = playerModel; _enemyListModel = enemyListModel; _reset = reset; _gunSound = contentManager.Load <SoundEffect>("gun"); _enemyDies = contentManager.Load <SoundEffect>("enemydies"); _playerDies = contentManager.Load <SoundEffect>("playerdies"); }
public StatsView(ContentManager contentManager, SpriteBatch spriteBatch, PlayerModel playerModel, EnemyListModel enemyListModel) : base(contentManager, spriteBatch) { _gameFont = contentManager.Load <SpriteFont>("File"); var shipTextures = contentManager.Load <Texture2D>("shipsall"); _ships = new SpriteSheet(spriteBatch, shipTextures, 64, 64); _playerModel = playerModel; _spriteBatch = spriteBatch; _enemyListModel = enemyListModel; }
// Uncomment to debug enemy positioning //private readonly SpriteFont _gameFont; //private readonly SpriteBatch _spriteBatch; public EnemyView(ContentManager contentManager, SpriteBatch spriteBatch, EnemyListModel enemyListModel) : base(contentManager, spriteBatch) { // Uncomment to debug enemy positioning //_spriteBatch = spriteBatch; //_gameFont = contentManager.Load<SpriteFont>("File"); var enemyTextures = contentManager.Load <Texture2D>("enemies"); var bossTexture = contentManager.Load <Texture2D>("boss"); _enemies = new SpriteSheet(spriteBatch, enemyTextures, 32, 32); _boss = new SpriteSheet(spriteBatch, bossTexture, 64, 59); _enemyList = enemyListModel; }
public override void Enter(params object[] args) { _screen = new RenderTarget2D(StateMachine.Game.GraphicsDevice, VirtualScreenSize.Width * VirtualScreenSize.ScreenSizeMultiplier, VirtualScreenSize.Height * VirtualScreenSize.ScreenSizeMultiplier); _spriteBatch = new SpriteBatch(StateMachine.Game.GraphicsDevice); if (MediaPlayer.State != MediaState.Playing) { MediaPlayer.Play(_levelMusic); MediaPlayer.IsRepeating = true; MediaPlayer.Volume = 0.2f; } bool resetForNewGame = true; if (args.Length > 0 && args[0] is bool) { resetForNewGame = (bool)args[0]; } if (resetForNewGame) { int highScore = 0; using (var connection = new SQLiteConnection("Data Source=genericspaceshooter.db")) { connection.Open(); var command = new SQLiteCommand(connection) { CommandText = "SELECT Stage FROM HighScore ORDER BY Stage DESC LIMIT 1" }; SQLiteDataReader reader = command.ExecuteReader(); while (reader.Read()) { highScore = reader.GetInt32(0); } connection.Close(); } _playerModel = new PlayerModel(1, highScore); } else { _playerModel = _playerService.GetPlayer(); _playerModel.Stage += 1; _playerModel.Lives = _playerModel.Stage % 4 == 0 ? _playerModel.Lives++ : _playerModel.Lives; _playerModel.AddXp(50); _playerModel.ResetPosition(ResetMode.Level); if (_playerModel.Stage > _playerModel.HighScore) { _playerModel.HighScore = _playerModel.Stage; } } _playerService.SetPlayer(_playerModel); // Create models _bulletListModel = new BulletListModel(new List <BulletModel>()); _enemyListModel = new EnemyListModel(EnemyFactory.CreateStage(_playerModel.Stage)); _bonusItemListModel = new BonusItemListModel(BonusItemFactory.CreateBonusItemsForStage(_playerModel.Stage)); // Create and add controllers var playerController = new PlayerController(_playerModel); var enemyController = new EnemyController(_enemyListModel, _playerModel, playerController, StateMachine.Game.Content); var bulletListController = new BulletController(_bulletListModel, _playerModel, _enemyListModel, playerController, StateMachine.Game.Content); var bonusItemController = new BonusItemController(_bonusItemListModel, _playerModel, StateMachine.Game.Content); _controllers.Add(playerController); _controllers.Add(enemyController); _controllers.Add(bulletListController); _controllers.Add(bonusItemController); // Add views _views.Add(new PlayerView(StateMachine.Game.Content, _spriteBatch, _playerModel)); _views.Add(new BulletView(StateMachine.Game.Content, _spriteBatch, _bulletListModel)); _views.Add(new EnemyView(StateMachine.Game.Content, _spriteBatch, _enemyListModel)); _views.Add(new StatsView(StateMachine.Game.Content, _spriteBatch, _playerModel, _enemyListModel)); _views.Add(new BonusItemView(StateMachine.Game.Content, _spriteBatch, _bonusItemListModel)); }