Exemple #1
0
        public void LoadLevel(Ball ball, ref Paddle paddle, ref List <Block> blocks)
        {
            ball.SetPosition(Object.windowWidth / 2, Object.windowHeigth / 2);
            paddle.SetPosition(Object.windowWidth / 2, Object.windowHeigth - 60);

            switch (lvl)
            {
            case GameLevels.LEVEL_1: LoadLevel_1(ref blocks); break;

            case GameLevels.LEVEL_2: LoadLevel_2(ref blocks); break;

            case GameLevels.LEVEL_3: LoadLevel_3(ref blocks); break;

            case GameLevels.LEVEL_4: LoadLevel_4(ref blocks); break;

            case GameLevels.LEVEL_5: LoadLevel_5(ref blocks); break;

            case GameLevels.LEVEL_6: LoadLevel_6(ref blocks); break;

            case GameLevels.LEVEL_7: LoadLevel_7(ref blocks); break;

            case GameLevels.LEVEL_8: LoadLevel_8(ref blocks); break;

            case GameLevels.LEVEL_9: LoadLevel_9(ref blocks); break;

            case GameLevels.LEVEL_10: LoadLevel_10(ref blocks); break;

            default: break;
            }
        }
        void Game()
        {
            List <Block> blocks  = new List <Block>();
            List <Bonus> bonuses = new List <Bonus>();

            level.LoadLevel(ball, ref player, ref blocks);
            howMauchBlocks = blocks.Count;
            ball.MoveStraightDown();
            player.Reset();
            ball.Reset();
            while (state == GameState.GAME)
            {
                window.Clear();
                superBall.GetTime();

                ball.Update();
                player.Update();

                if (Collisions(ref player, ref ball))
                {
                    player.SetPosition(player.GetPosition().X, player.GetPosition().Y - 1);
                }

                if (redPaddle.IsActive())
                {
                    RedPaddleSpecial();
                }
                else if (bluePaddle.IsActive())
                {
                    BluePaddleSpecial();
                }

                UpdateAndRemoveBlocks(ref blocks, ref bonuses);
                UpdateAndRemoveBonuses(ref bonuses);

                if (howMauchBlocks <= 0)
                {
                    level.ChangeToNextLevel();
                    state = GameState.LEVEL_COMPLETED;
                    break;
                }
                if (CheckGameOver(ref ball))
                {
                    if (greenPaddle.IsActive())
                    {
                        GreenPaddleSpecial();
                    }
                    else
                    {
                        state = GameState.GAME_OVER;
                    }
                }
                window.DispatchEvents();
                window.Draw(coins.ShowCoinsInGame(amountOfCoins));
                window.Draw(ball);
                window.Draw(player.sprite);
                window.Display();
            }
        }