/// <summary> /// Main draw cycle. Calls other drawers. /// </summary> public void CallDraws(Minijam32 game, SpriteBatch batch, GraphicsDevice graphicsDevice) { graphicsDevice.Clear(backgroundDirtColor); batch.Begin(samplerState: SamplerState.PointClamp); if (screenState == ScreenState.Start) { this.menuGui.Draw(game, batch); } else if (screenState == ScreenState.Playing) { if (PlayerDataManager.isDead) { this.SetStateToDeath(); } if (game.levelData.hasCompletedLastLevel) { screenState = ScreenState.FinishedGame; game.musicPlayer.Mute(); SoundPlayer.PlaySound(SoundPlayer.Type.NextLevelLick); } game.levelData.DrawBelow(game, batch); PlayerDrawer.DrawCurrentState(batch, PlayerDataManager.tilePosition); game.levelData.DrawAbove(game, batch); Animator.DrawFieldAnimations(batch); InfoDrawer.Draw(batch); } else if (screenState == ScreenState.SwitchingLevel) { this.newLevelDrawer.DrawNextLevelIntro(batch); } else if (screenState == ScreenState.DeadGameOver) { game.levelData.DrawBelow(game, batch); PlayerDrawer.DrawCurrentState(batch, PlayerDataManager.tilePosition); game.levelData.DrawAbove(game, batch); Animator.DrawFieldAnimations(batch); this.newLevelDrawer.DrawDeathScene(batch); } else if (screenState == ScreenState.FinishedGame) { game.levelData.DrawBelow(game, batch); PlayerDrawer.DrawCurrentState(batch, PlayerDataManager.tilePosition); game.levelData.DrawAbove(game, batch); Animator.DrawFieldAnimations(batch); this.finishedGameDrawer.DrawGameCompletedScene(game, batch); } batch.End(); }
/// <summary> /// Starts handling the drawing of the player. /// </summary> public void SetupDrawer(PlayerDrawer drawer) { if (Entity == null) { throw new Exception("PlayerEntity Not Setup!"); } else { Drawer = drawer; } }
protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); TileDrawer.InitAssets(this); PlayerDrawer.InitAssets(this); EnemyDrawer.LoadAssets(this); screenPool = new ScreenPool(this); this.musicPlayer = new MusicPlayer(this); SoundPlayer.InitAssets(this); Animator.InitAssets(this); InfoDrawer.LoadAssets(this); }
protected override void Initialize() { // TODO: Add your initialization logic here _graphics.PreferredBackBufferWidth = _gameWindowedSize.Width; _graphics.PreferredBackBufferHeight = _gameWindowedSize.Height; _graphics.IsFullScreen = _isFullscreen; _graphics.ApplyChanges(); _defaultFont = Content.Load <SpriteFont>("default_font"); Player.Initialize(Content); LevelDrawer.Initialize(Content); PlayerDrawer.Initialize(Content); base.Initialize(); // Generate Level _currentLevel = LevelGenerator.GenerateLevel(6, 15, 15, 1, false); _player = new Player(_currentLevel.StartX, _currentLevel.StartY); _gameAreaScale = CalculateGameScale(_currentLevel, 50, 3 / 5f); }