public override void Update(float dt) { foreach (Entity entity in _livesEntities) { LivesComponent livesComp = entity.GetComponent <LivesComponent>(); FontComponent fontComp = entity.GetComponent <FontComponent>(); fontComp.Content = livesComp.Lives.ToString(); } }
public static Entity Create(Engine engine, Vector2 position, BitmapFont font, string content) { Entity entity = engine.CreateEntity(); TransformComponent transformComp = new TransformComponent(position); entity.AddComponent(transformComp); FontComponent fontComp = new FontComponent(font, content); entity.AddComponent(fontComp); return(entity); }
public FontActor(ulong id, string text = "") : base(id) { InitializeComponent(); Name = "Font-" + id; Width = 100; Height = 30; if (string.IsNullOrEmpty(text)) { Text = Name; } else { Text = text; } _font = new FontComponent(this); AddComponent(_font); }
public ReadyIntroTextAnimation(Engine engine, Entity entity, Camera camera, GraphicsDevice graphicsDevice) { _engine = engine; _entity = entity; _transformComp = _entity.GetComponent <TransformComponent>(); if (_transformComp == null) { throw new Exception("Entity must have TransformComponent"); } _fontComp = _entity.GetComponent <FontComponent>(); if (_fontComp == null) { throw new Exception("Entity must have FontComponent"); } _camera = camera; _graphicsDevice = graphicsDevice; _fontComp.Hidden = true; }
public void DrawEntities(Matrix transformMatrix, byte groupMask, float dt, float betweenFrameAlpha) { _spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, transformMatrix); foreach (Entity entity in _spriteEntities) { SpriteComponent spriteComp = entity.GetComponent <SpriteComponent>(); if (spriteComp.Hidden || (spriteComp.RenderGroup & groupMask) == 0) { continue; } TransformComponent transformComp = entity.GetComponent <TransformComponent>(); Vector2 offsetPosition = (transformComp.Position - transformComp.LastPosition) * (1 - betweenFrameAlpha); offsetPosition *= -1; Vector2 scale = new Vector2(spriteComp.Bounds.X / spriteComp.Texture.Width, spriteComp.Bounds.Y / spriteComp.Texture.Height); Vector2 origin = new Vector2(spriteComp.Texture.Bounds.Width, spriteComp.Texture.Bounds.Height) * HalfHalf; _spriteBatch.Draw(spriteComp.Texture, (transformComp.Position + offsetPosition) * FlipY, null, Color.White, transformComp.Rotation, origin, scale, SpriteEffects.None, 0); } foreach (Entity entity in _fontEntities) { FontComponent fontComp = entity.GetComponent <FontComponent>(); if (fontComp.Hidden || (fontComp.RenderGroup & groupMask) == 0) { continue; } TransformComponent transformComp = entity.GetComponent <TransformComponent>(); Vector2 scale = Vector2.One; Vector2 origin = fontComp.Font.MeasureString(fontComp.Content) / 2; _spriteBatch.DrawString(fontComp.Font, fontComp.Content, transformComp.Position * FlipY, fontComp.Color, transformComp.Rotation, origin, scale, SpriteEffects.None, 0); } _spriteBatch.End(); }