Ejemplo n.º 1
0
        public override void CollisionedBy(CollisionBase collision)
        {
            // brick hit by ball
            if (collision.GetType() == Type.GetType("gArkanoid.Entities.Ball"))
            {
                lives--;

                if (lives == 0)
                {
                    Board.RemoveBrick(this);
                    GameControl.AddScorePoints((int)this.brickType);

                    // reward & explosion
                    this.GenerateReward();
                    this.GenerateExplosion();

                    // play de 'hit' sound from a separate thread (performance problems)
                    // Thread thread = new Thread(new ThreadStart(PlaySound));
                    // thread.Start();
                }
            }

            // brick hit by shot
            if (collision.GetType() == Type.GetType("gArkanoid.Entities.Shot"))
            {
                // destroy the brick & shot
                Board.RemoveBrick(this);
                Board.RemoveShot((Shot)collision);
                GameControl.AddScorePoints((int)this.brickType);

                // reward & explosion
                this.GenerateReward();
                this.GenerateExplosion();

                // play de 'hit' sound from a separate thread (performance problems)
                // Thread oThread = new Thread(new ThreadStart(PlaySound));
                // oThread.Start();
            }
        }
Ejemplo n.º 2
0
        public override void CollisionedBy(CollisionBase collision)
        {
            // playerpad hit a reward
            if (collision.GetType() == Type.GetType("gArkanoid.Entities.Reward"))
            {
                Board.RemoveReward((Reward)collision);
                GameControl.AddScorePoints((int)((Reward)collision).RewardType);

                switch (((Reward)collision).RewardType)
                {
                case Reward.eRewardType.None: break;

                case Reward.eRewardType.WidePad:
                    RewardWidePad();
                    break;

                case Reward.eRewardType.FirePad:
                    RewardShotingPad();
                    break;

                case Reward.eRewardType.SlowBall:
                    SlowBallEventHandler oSlowBallEventHandler = SlowBallRewardEvent;

                    if (oSlowBallEventHandler != null)     // invoke the delegates
                    {
                        oSlowBallEventHandler(this, new EventArgs());
                    }
                    break;

                case Reward.eRewardType.DemolitionBall:
                    DemolitionBallEventHandler oDemolitionBallEventHandler = DemolitionBallRewardEvent;

                    if (oDemolitionBallEventHandler != null)     // invoke the delegates
                    {
                        oDemolitionBallEventHandler(this, new EventArgs());
                    }
                    break;

                case Reward.eRewardType.DoubleBall:
                    DoubleBallEventHandler oDoubleBallEventHandler = DoubleBallRewardEvent;

                    if (oDoubleBallEventHandler != null)     // invoke the delegates
                    {
                        oDoubleBallEventHandler(this, new EventArgs());
                    }
                    break;

                case Reward.eRewardType.TripleBall:
                    TripleBallEventHandler oTripleBallEventHandler = TripleBallRewardEvent;

                    if (oTripleBallEventHandler != null)     // invoke the delegates
                    {
                        oTripleBallEventHandler(this, new EventArgs());
                    }
                    break;

                case Reward.eRewardType.WinLevel:
                    WinLevelEventHandler oWinLevelEventHandler = WinLevelRewardEvent;

                    if (oWinLevelEventHandler != null)     // invoke the delegates
                    {
                        oWinLevelEventHandler(this, new EventArgs());
                    }
                    break;

                default: break;
                }
            }
        }