Exemplo n.º 1
0
        void render(RendererParams rendererParams)
        {
            if (rendererParams.ItemsToRender.Has(ItemsToRender.SelectionRectangle))
            {
                drawSelectionBoxIfNeeded(rendererParams);
            }

            if (rendererParams.ItemsToRender.Has(ItemsToRender.Items))
            {
                drawAllItems(rendererParams);
            }

            if (rendererParams.ItemsToRender.Has(ItemsToRender.HooksOnSelectedItems))
            {
                drawFramesAroundSelectedEditors(rendererParams);
            }

            if (rendererParams.SnapPoint.Visible && rendererParams.ItemsToRender.Has(ItemsToRender.SnapPoint))
            {
                _game.SpriteBatch.Begin( );

                var snappedPoint = Vector2.Transform(rendererParams.SnapPoint.Position, rendererParams.Camera.Matrix);

                _drawing.DrawBoxFilled(
                    _game.SpriteBatch, snappedPoint.X - 5, snappedPoint.Y - 5, 10, 10, Constants.Instance.ColorSelectionFirst);

                _game.SpriteBatch.End( );
            }

            if (Constants.Instance.ShowWorldOrigin)
            {
                if (rendererParams.ItemsToRender.Has(ItemsToRender.WorldOrigin))
                {
                    drawWorldOrigin(rendererParams.Camera);
                }
            }

            if (Constants.Instance.ShowGrid)
            {
                if (rendererParams.ItemsToRender.Has(ItemsToRender.Grid))
                {
                    drawGrid(rendererParams.Camera);
                }
            }

            if (_debugDrawActions.Any())
            {
                _game.SpriteBatch.Begin( );

                _debugDrawActions.ForEach(a => a());

                _game.SpriteBatch.End( );

                _debugDrawActions.Clear(  );
            }
        }
Exemplo n.º 2
0
        public override void DrawSelectionFrame(SpriteBatch spriteBatch, Color color)
        {
            float   range    = _properties.Range;
            Vector2 position = _properties.Position;

            _drawing.DrawCircle(spriteBatch, position, range, color, 2);

            var extents = new Vector2[4];

            extents[0] = position + Vector2.UnitX * range;
            extents[1] = position + Vector2.UnitY * range;
            extents[2] = position - Vector2.UnitX * range;
            extents[3] = position - Vector2.UnitY * range;

            foreach (Vector2 eachExtent in extents)
            {
                _drawing.DrawCircleFilled(spriteBatch, eachExtent, 4, color);
            }

            _drawing.DrawBoxFilled(spriteBatch, position.X - 5, position.Y - 5, 10, 10, color);
        }