Ejemplo n.º 1
0
        protected virtual void OnComponentAdded(GameComponentEventArgs <ComponentType> e)
        {
            IUpdateable asUpdateable;
            IDrawable   asDrawable;

            if (m_IsInitialized)
            {
                InitializeComponent(e.GameComponent);
            }
            else
            {
                m_UninitializedComponents.Add(e.GameComponent);
            }

            asUpdateable = e.GameComponent as IUpdateable;
            if (asUpdateable != null)
            {
                insertSorted(asUpdateable);
                asUpdateable.UpdateOrderChanged += new EventHandler <EventArgs>(child_UpdateOrderChanged);
            }

            asDrawable = e.GameComponent as IDrawable;
            if (asDrawable != null)
            {
                insertSorted(asDrawable);
                asDrawable.DrawOrderChanged += new EventHandler <EventArgs>(child_DrawOrderChanged);
            }

            if (ComponentAdded != null)
            {
                ComponentAdded.Invoke(this, e);
            }
        }
Ejemplo n.º 2
0
 protected override void OnComponentRemoved(GameComponentEventArgs <GameScreen> e)
 {
     base.OnComponentRemoved(e);
     if (ItemsStack.Count == 0)
     {
         this.Game.Exit();
     }
 }
Ejemplo n.º 3
0
        protected override void OnComponentRemoved(GameComponentEventArgs <GameScreen> e)
        {
            base.OnComponentRemoved(e);

            e.GameComponent.StateChanged -= Screen_StateChanged;

            if (m_ScreensStack.Count == 0)
            {
                Game.Exit();
            }
        }
        // Applies To dead invaders AND on all invaders after this.Clear()
        protected override void OnComponentRemoved(GameComponentEventArgs <Invader> e)
        {
            base.OnComponentRemoved(e);
            Invader invader = e.GameComponent;

            invader.Dying -= OnInvaderDying;
            invader.Died  -= OnInvaderDied;
            invader.Animations.Pause();
            invader.Dispose();

            if (this.Count == 0)
            {
                AllInvadersWereDefeated?.Invoke();
            }
        }
Ejemplo n.º 5
0
        protected virtual void OnComponentRemoved(GameComponentEventArgs <ComponentType> e)
        {
            IUpdateable asUpdateable;
            IDrawable   asDrawable;
            Sprite      asSprite;

            if (!m_IsInitialized)
            {
                m_UninitializedComponents.Remove(e.GameComponent);
            }

            asUpdateable = e.GameComponent as IUpdateable;
            if (asUpdateable != null)
            {
                m_UpdateableComponents.Remove(asUpdateable);
                asUpdateable.UpdateOrderChanged -= child_UpdateOrderChanged;
            }

            asSprite = e.GameComponent as Sprite;
            if (asSprite != null)
            {
                m_Sprites.Remove(asSprite);
                asSprite.DrawOrderChanged -= child_DrawOrderChanged;
            }
            else
            {
                asDrawable = e.GameComponent as IDrawable;
                if (asDrawable != null)
                {
                    m_DrawableComponents.Remove(asDrawable);
                    asDrawable.DrawOrderChanged -= child_DrawOrderChanged;
                }
            }

            if (ComponentRemoved != null)
            {
                ComponentRemoved.Invoke(this, e);
            }
        }
Ejemplo n.º 6
0
        protected override void OnComponentRemoved(GameComponentEventArgs <GameScreen> e)
        {
            base.OnComponentRemoved(e);

            e.GameComponent.Closed -= Screen_Closed;
        }
Ejemplo n.º 7
0
 protected override void UnsubscribeToCloseEvent(GameComponentEventArgs <Menu> e)
 {
     e.GameComponent.Closed -= menu_Closed;
 }
Ejemplo n.º 8
0
 protected abstract void UnsubscribeToCloseEvent(GameComponentEventArgs <ItemsType> e);
Ejemplo n.º 9
0
 protected override void OnComponentRemoved(GameComponentEventArgs <ItemsType> e)
 {
     base.OnComponentRemoved(e);
     UnsubscribeToCloseEvent(e);
 }
Ejemplo n.º 10
0
 protected override void UnsubscribeToCloseEvent(GameComponentEventArgs <GameScreen> e)
 {
     e.GameComponent.Closed -= screen_Closed;
 }