示例#1
0
        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();
            }
        }
示例#2
0
        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);
        }
示例#3
0
 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);
 }
示例#4
0
        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;
        }
示例#5
0
        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();
        }