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(); } }
//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); }