示例#1
0
        public void SignIn(Entity entity)
        {
            if (entity != null)
            {
                entity.OnActivStateChanged += Entity_OnActivStateChanged;

                if (entity.IsActiv)
                {
                    entities.Add(entity);
                }

                if (entity is CollidAble)
                {
                    if (entity.IsActiv)
                    {
                        CollidAble collidableEnt = entity as CollidAble;
                        collidAbleEntities.Add(collidableEnt);
                        CollisionDetection.ActivCollisionDetection.SignIn(collidableEnt);
                    }
                }

                if (entity is DrawAble)
                {
                    DrawAble drawAble = entity as DrawAble;
                    drawAble.OnVisabillityChanged += DrawAble_OnVisabillityChanged;
                    if (drawAble.IsVisable)
                    {
                        drawAbleEntities.Add(drawAble);
                    }
                }
            }
        }
示例#2
0
        private void DrawAble_OnVisabillityChanged(object sender, System.EventArgs e)
        {
            Entity ent = sender as Entity;

            if (ent != null)
            {
                if (ent is DrawAble)
                {
                    DrawAble drawAble = ent as DrawAble;
                    if (drawAble.IsVisable && !drawAbleEntities.Contains(drawAble))
                    {
                        drawAbleEntities.Add(drawAble);
                    }
                    else if (!drawAble.IsVisable)
                    {
                        drawAbleEntities.Remove(drawAble);
                    }
                }
            }
        }