Esempio n. 1
0
        public void DrawBloom(GameTime gameTime, BloomComponent bloom, bool isBloom)
        {
            if (isBloom)
            {
                bloom.BeginDraw(_spriteBatch);
            }
            _spaceManager.DrawBackGround(cameraFollowing, Camera.Pos);

            _spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend,
                               null,
                               null,
                               null,
                               null,
                               Camera.get_transformation(_spriteBatch.GraphicsDevice));

            _spaceManager.Draw(_spriteBatch, Camera.Pos, Zoom);

            _spriteBatch.End();

            // Draw particles in different spritebatch. Otherwise they look absolutely awful.
            _spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.Additive,
                               null,
                               null,
                               null,
                               null,
                               Camera.get_transformation(_spriteBatch.GraphicsDevice));
            _spaceManager.DrawWarpZones();
            _particleManager.Draw(_spriteBatch);
            _shipManager.ParticleDraw(_spriteBatch);

            _spriteBatch.End();

            _spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend,
                               null,
                               null,
                               null,
                               null,
                               Camera.get_transformation(_spriteBatch.GraphicsDevice));

            foreach (var s in _structures)
            {
                switch (s.buildingType)
                {
                case StructureTypes.LaserTurret:
                    ((Turret)s).Draw(_spriteBatch);
                    break;

                default:
                    s.Update();
                    break;
                }
            }

            _projectileManager.Draw(Camera._pos);
            _shipManager.Draw();
            //ParticleManager.DrawOnTop(spriteBatch); // Not needed atm. Needed when we use Charge effects, etc
            _spriteBatch.End();
            //normal.Draw(spriteBatch, gameTime, ConvertUnits.ToDisplayUnits(shipPos), spaceCam);
#if DEBUG
            //_spriteBatch.Begin();
            //string the = ""+ShipManager.getPlayerShipDifference();
            ////DebugTextManager.DrawTextToScreenLeft(_spriteBatch, 2, the);
            ////ProjectileManager.Debug(_spriteBatch);
            //_spriteBatch.End();
#endif
            if (isBloom)
            {
                bloom.Draw(_spriteBatch);
            }
        }