Ejemplo n.º 1
0
        public void Render(float dT, GraphicsDevice device, SpriteBatch batch)
        {
            this.Map.Render(dT, device, batch, this.Viewport, this.ZoomLevel);
            this.WM.Render(device);
            if (this.Selection != null)
            {
                GUI.Renderer.Rect r1 = new GUI.Renderer.Rect(48, 32, 16, 16);
                WM.Renderer.SetColour(Color.Red);

                float dX = -Viewport.X / ZoomLevel;
                float dY = -Viewport.Y / ZoomLevel;
                float X0, X1, Y0, Y1, Stride;
                X0 = Selection.Bound.X + dX;
                X1 = Selection.Bound.X + dX + Selection.Bound.Width - 16;
                Y0 = Selection.Bound.Y + dY;
                Y1 = Selection.Bound.Y + Selection.Bound.Height - 16 + dY;

                X0    *= ZoomLevel;
                X1    *= ZoomLevel;
                Y0    *= ZoomLevel;
                Y1    *= ZoomLevel;
                Stride = 16 * ZoomLevel;
                WM.Renderer.RenderQuad(device, X0, Y0, Stride, Stride, r1);
                r1 = new GUI.Renderer.Rect(48 + 16, 32, 16, 16);
                WM.Renderer.RenderQuad(device, X1, Y0, Stride, Stride, r1);
                r1 = new GUI.Renderer.Rect(48 + 16, 32 + 16, 16, 16);
                WM.Renderer.RenderQuad(device, X1, Y1, Stride, Stride, r1);
                r1 = new GUI.Renderer.Rect(48, 32 + 16, 16, 16);
                WM.Renderer.RenderQuad(device, X0, Y1, Stride, Stride, r1);
            }

            if (this.State == GameState.Designate && this.dragState.IsActive)
            {
                GUI.Renderer.Rect r1 = new GUI.Renderer.Rect(80, 48, 16, 16);
                WM.Renderer.SetColour(Color.Red);
                DesignationState Selection = this.dragState.Normalize();
                float            dX = -Viewport.X / ZoomLevel;
                float            dY = -Viewport.Y / ZoomLevel;
                int   X0, X1, Y0, Y1;
                float Stride, RealX, RealY;
                X0 = Selection.Start.X;
                Y0 = Selection.Start.Y;
                X1 = Selection.End.X;
                Y1 = Selection.End.Y;

                RealX  = (dX + X0 * Components.Map.Tile.TileStride) * ZoomLevel;
                RealY  = (dY + Y0 * Components.Map.Tile.TileStride) * ZoomLevel;
                Stride = 64 * ZoomLevel;
                for (int x = X0; x <= X1; x++)
                {
                    for (int y = Y0; y <= Y1; y++)
                    {
                        WM.Renderer.RenderQuad(device, RealX + (x - X0) * Stride, RealY + (y - Y0) * Stride, Stride, Stride, r1);
                    }
                }
            }
        }
Ejemplo n.º 2
0
            public DesignationState Normalize()
            {
                int X0, X1, Y0, Y1;

                X0 = Math.Min(Start.X, End.X);
                X1 = Math.Max(Start.X, End.X);
                Y0 = Math.Min(Start.Y, End.Y);
                Y1 = Math.Max(Start.Y, End.Y);
                DesignationState result = new DesignationState
                {
                    IsActive = this.IsActive,
                    Complete = this.Complete,
                    Start    = new Point(X0, Y0),
                    End      = new Point(X1, Y1)
                };

                return(result);
            }
Ejemplo n.º 3
0
 public void BatchDesignate(DesignationState Selection)
 {
 }