Beispiel #1
0
        public override void CustomDraw(GameTime gameTime)
        {
            base.CustomDraw(gameTime);
            _spriteBatch.Begin();

            for (int x = _resultsFrame.XPos + 16; x < _resultsFrame.XPos + _resultsFrame.Width - 16; x += 16)
            {
                for (int y = _resultsFrame.YPos + 16; y < _resultsFrame.YPos + _resultsFrame.Height; y += 16)
                {
                    _spriteBatch.Draw(_menuBackground, new Vector2(x, y), _backRectangle, Color.Black, 0, Vector2.Zero, 1, SpriteEffects.None, 0.6f);
                }
            }
            _resultsFrame.Draw(screenManager.spriteBatch, gameTime);
            _resultsText.Draw(gameTime);
            if (_pressToContinue.IsVisible)
            {
                _pressToContinue.Draw(gameTime);
            }

            for (int i = 0; i < _progressBars.Length; i++)
            {
                _tankSprites[i].Draw(gameTime);
                _progressBars[i].Draw(_spriteBatch, gameTime);
            }
            _spriteBatch.End();
        }
 public override void CustomDraw(GameTime gameTime)
 {
     _currentRotation += 0.03f;
     _spriteBatch.Begin();
     _spriteBatch.DrawString(_font, _helpText, new Vector2(GameSettings.ScreenWidth / 2 - _font.MeasureString(_helpText).X / 2, GameSettings.ScreenHeight * 0.1f), Color.White);
     for (int i = 0; i < 10; i++)
     {
         _tankSprites[i].rotation = _currentRotation;
     }
     for (int i = 0; i < 4; i++)
     {
         _spriteBatch.DrawString(_font, "Player " + (i + 1), new Vector2(80 + 150 - (_font.MeasureString("Player " + (i + 1)).X / 2) + (i * 300), 200), Color.White);
         if (_selectedControls[i] != Tank.ControlScheme.Empty)
         {
             _spriteBatch.DrawString(_font, _selectedControls[i].ToString(), new Vector2(80 + 150 - (_font.MeasureString(_selectedControls[i].ToString()).X / 2) + (i * 300), 250), Color.White);
             _spriteBatch.DrawString(_font, "Change color:Left/Right", new Vector2(110 + (i * 300), 450), Color.White);
             _tankSprites[_selectedTeams[i]].position = new Vector2(80 + (i * 300) + 140, 350);
             _tankSprites[_selectedTeams[i]].Draw(gameTime);
         }
     }
     _menuFrame.Draw(_spriteBatch, gameTime);
     _spriteBatch.End();
     base.CustomDraw(gameTime);
 }
Beispiel #3
0
        public override void CustomDraw(GameTime gameTime)
        {
            if (usingSplitScreen)
            {
                for (int i = 0; i < _playersRemaining.Count; i++)
                {
                    screenManager.GraphicsDevice.Viewport = usedViewPorts[i];
                    float newCameraX = _players[i].camera.Position.X;
                    float newCameraY = _players[i].camera.Position.Y;
                    if (_players[i].camera.Position.X < 0)
                    {
                        newCameraX = 0;
                    }
                    if (_players[i].camera.Position.Y < 0)
                    {
                        newCameraY = 0;
                    }
                    if (_players[i].camera.Position.X + usedViewPorts[i].Width > GameSettings.ScreenWidth)
                    {
                        newCameraX = GameSettings.ScreenWidth - usedViewPorts[i].Width;
                    }
                    if (_players[i].camera.Position.Y + usedViewPorts[i].Height > GameSettings.ScreenHeight)
                    {
                        newCameraY = GameSettings.ScreenHeight - usedViewPorts[i].Height;
                    }
                    _players[i].camera.Position = new Vector2(newCameraX, newCameraY);

                    _spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.NonPremultiplied, SamplerState.PointWrap, null, null, null, _players[i].camera.GetTransformation(screenManager.GraphicsDevice));
                    PooledObjects.bullets.ForEach(b => b.Draw(_spriteBatch, gameTime));
                    PooledObjects.tileFragmentClusters.ForEach(fc => fc.Draw(_spriteBatch, gameTime));
                    _currentMap.Draw(_spriteBatch, gameTime);
                    for (int j = 0; j < numberOfPlayers; j++)
                    {
                        _players[j].Draw(_spriteBatch, gameTime);
                    }
                    _spriteBatch.End();
                }

                screenManager.GraphicsDevice.Viewport = guiViewPort;
                _spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.NonPremultiplied, SamplerState.PointWrap, null, null, null, camera.GetTransformation(screenManager.GraphicsDevice));


                if (_isRoundOver)
                {
                    _wonText.Draw(_spriteBatch, gameTime);
                }
                _guiFrame.Draw(_spriteBatch, gameTime);
                _spriteBatch.End();
            }
            else
            {
                _spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.NonPremultiplied, SamplerState.PointWrap, null, null, null, camera.GetTransformation(screenManager.GraphicsDevice));
                PooledObjects.bullets.ForEach(b => b.Draw(_spriteBatch, gameTime));
                PooledObjects.tileFragmentClusters.ForEach(fc => fc.Draw(_spriteBatch, gameTime));
                PooledObjects.explosions.ForEach(e => e.Draw(_spriteBatch, gameTime));
                _powerups.ForEach(x => x.Draw(_spriteBatch, gameTime));
                _currentMap.Draw(_spriteBatch, gameTime);
                for (int i = 0; i < numberOfPlayers; i++)
                {
                    _players[i].Draw(_spriteBatch, gameTime);
                }
                _spriteBatch.End();
                _spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.NonPremultiplied, SamplerState.PointWrap, null, null, null, _guiCamera.GetTransformation(screenManager.GraphicsDevice));
                _guiFrame.Draw(_spriteBatch, gameTime);
                for (int i = 0; i < numberOfPlayers; i++)
                {
                    _players[i].DrawStatsBar(gameTime);
                }
                if (_isRoundOver)
                {
                    _wonText.Draw(_spriteBatch, gameTime);
                }
                _timerFont.Draw(gameTime);
                _spriteBatch.End();
            }
        }