Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
 //Funkcje zwiazane z kolizjami obiektow
 bool Collisions(ref Paddle paddle, ref Ball ball)
 {
     if ((paddle.Right() >= ball.Left()) && (paddle.Left() <= ball.Right()) &&
         (paddle.Bottom() >= ball.Top()) && (paddle.Top() <= ball.Bottom()))
     {
         ball.MoveUp();
         if (ball.GetPosition().X < paddle.GetPosition().X)
         {
             ball.MoveLeft();
         }
         else if (ball.GetPosition().X > paddle.GetPosition().X)
         {
             ball.MoveRight();
         }
         return(true);
     }
     return(false);
 }