Ejemplo n.º 1
0
        private void RenderSurfaceComponent(DrawableComponent component)
        {
            var sprite = this._surfaces.GetSprite(component.TextureName);

            var pos = (Vector2f)component.Position;

            if (component.AbsolutePositioning)
            {
                sprite.Position = new Vector2f(
                    pos.X + this._camera.Center.X - (this._camera.Size.X / 2),
                    pos.Y + this._camera.Center.Y - (this._camera.Size.Y / 2)
                    );
            }
            else
            {
                sprite.Position = pos;
            }

            if (component.Rect != null)
            {
                var rect = (IntRect)component.Rect;
                sprite.TextureRect = rect;

                if (component.RenderSize != null)
                {
                    var size = (Vector2f)component.RenderSize;

                    sprite.Scale = new Vector2f(
                        size.X / rect.Width,
                        size.Y / rect.Height
                        );
                }
            }
            else
            {
                if (component.RenderSize != null)
                {
                    var size = (Vector2f)component.RenderSize;
                    sprite.Scale = new Vector2f(
                        size.X / sprite.Texture.Size.X,
                        size.Y / sprite.Texture.Size.Y
                        );
                }
            }

            if (component.Color != null)
            {
                sprite.Color = (Color)component.Color;
            }

            this._context.Draw(sprite);
        }
Ejemplo n.º 2
0
        private void RenderTextComponent(DrawableComponent component)
        {
            var text = new Text(component.RenderText, this._font);

            text.CharacterSize = component.CharacterSize;

            if (component.Position != null)
            {
                var pos = (Vector2f)component.Position;
                if (component.AbsolutePositioning)
                {
                    text.Position = new Vector2f(
                        pos.X + this._camera.Center.X - (this._camera.Size.X / 2),
                        pos.Y + this._camera.Center.Y - (this._camera.Size.Y / 2)
                        );
                }
                else
                {
                    text.Position = pos;
                }
            }

            this._context.Draw(text);
        }