示例#1
0
        public void UseBonus(ref Grid grid, ref Platform platform, ref List <Ball> balls)
        {
            if (_id == BonusName.Random)
            {
                _id = (BonusName)_rand.Next(1, _maxBonusID + 1);
            }

            switch (_id)
            {
            case BonusName.DoubleBall:
                GameControl.PlaySound(GameControl.Sound.ExtraBall);
                int ballsCount = balls.Count;
                for (int i = 0; i < ballsCount; i++)
                {
                    balls.Add(new Ball(balls[i]));
                }
                break;

            case BonusName.BallSizeUp:
                foreach (Ball ball in balls)
                {
                    ball.SizeUp();
                }
                break;

            case BonusName.BallSizeDown:
                foreach (Ball ball in balls)
                {
                    ball.SizeDown();
                }
                break;

            case BonusName.BallSpeedDown:
                foreach (Ball ball in balls)
                {
                    ball.Speed--;
                }
                break;

            case BonusName.BallSpeedUp:
                foreach (Ball ball in balls)
                {
                    ball.Speed++;
                }
                break;

            case BonusName.PlatformSizeUp:
                platform.SizeUp();
                break;

            case BonusName.PlatformSizeDown:
                platform.SizeDown();
                break;

            case BonusName.PlatformSpeedUp:
                platform.Speed++;
                break;

            case BonusName.PlatformSpeedDown:
                platform.Speed--;
                break;

            case BonusName.ExtraLife:
                GameControl.AddLife();
                break;

            case BonusName.ExtraPoints:
                GameControl.AddPoints(1000);
                GameControl.PlaySound(GameControl.Sound.ExtraPoints);
                break;

            case BonusName.Skull:
                foreach (Ball ball in balls)
                {
                    grid.Children.Remove(ball);
                }
                balls.Clear();
                break;
            }

            grid.Children.Remove(this);
        }