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); }
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); }