protected override void Draw(GameTime gameTime)
        {
            if (actualScreen != null)
            {
                actualScreen.Draw(gameTime);
            }

            base.Draw(gameTime);
        }
Esempio n. 2
0
        public void Draw(Microsoft.Xna.Framework.GameTime time)
        {
            if (!Initialized || World == null)
            {
                return;
            }
            if (CurrentMap == null)
            {
                return;
            }
            int w = CurrentMap.Width << 4;
            int h = CurrentMap.Height << 4;

            GraphicsDevice.Clear(new Color(0x2f, 0x2f, 0x2f));
            SpriteBatch batch = World.ViewData.SpriteBatch;

            batch.Begin(Matrix.CreateScale(1));

            SelectionUtil.FillRectangle(World.ViewData.SpriteBatch, Color.White * 0.5f, new Rectangle((int)World.Camera.Location.X, (int)World.Camera.Location.Y, (int)(w * World.Camera.Scale), (int)(h * World.Camera.Scale)));

            CurrentMap.Draw(time);

            if (this.World.Camera.Scale <= 0)
            {
                this.World.Camera.Scale = 1f;
            }

            StateMachine.Draw(time);

            if (Options.Instance.Grid)
            {
                if (CurrentMap != null)
                {
                    //We could draw a rectangle for every Tiles...
                    //Or we could be smart and draw lines for columns and rows!

                    Color c1 = Color.DeepSkyBlue;
                    Color c2 = Color.Black;

                    float trans_white = Options.Instance.GridOpacity;
                    float trans_black = Options.Instance.GridOpacity;

                    //rows
                    for (int y = 0; y < CurrentMap.Height; y++)
                    {
                        SelectionUtil.DrawStraightLine(World.ViewData.SpriteBatch, c1, trans_white, 0, (y << 4), CurrentMap.Width * 16, 1);
                        SelectionUtil.DrawStraightLine(World.ViewData.SpriteBatch, c2, trans_black, 0, (y << 4) + 1, CurrentMap.Width * 16, 1);
                    }

                    //columns
                    for (int x = 0; x < CurrentMap.Width; x++)
                    {
                        SelectionUtil.DrawStraightLine(World.ViewData.SpriteBatch, c1, trans_white, x << 4, 0, 1, CurrentMap.Height << 4);
                        SelectionUtil.DrawStraightLine(World.ViewData.SpriteBatch, c2, trans_black, (x << 4) + 1, 0, 1, CurrentMap.Height << 4);
                    }
                }
            }

            ScreenInterface.Draw(time);
            //batch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.PointClamp, DepthStencilState.Default, RasterizerState.CullCounterClockwise);
            //batch.Draw(renderTarget, new Rectangle(xCam, yCam, (int) (renderTarget.Width * Zoom), (int) (renderTarget.Height * Zoom)), Color.White);
            batch.End();
        }