Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * FALL 2018 SEMESTER FINAL PROJECT - BREAKOUT
- * TEAM:
- * DATE:
- */
- public final int BALL_RADIUS = 8;
- public final int BALL_DIAMETER = BALL_RADIUS * 2;
- public final int PADDLE_WIDTH = 100;
- public final int PADDLE_HEIGHT = 10;
- public final int BRICK_WIDTH = 44;
- public final int BRICK_HEIGHT = 20;
- int lives = 1;
- int score = 0;
- private Ball ball;
- public Brick[] redBricks = new Brick[10];
- public Brick[] blueBricks = new Brick[10];
- public Brick[] greenBricks = new Brick[10];
- public Brick[] yellowBricks = new Brick[10];
- public Brick[] orangeBricks = new Brick[10];
- // TODO: put the rest of the rows here
- public boolean hasGameStarted = false;
- public boolean isGameOver = false;
- public int paddleX;
- public int paddleY;
- public void setup()
- {
- size(480, 480);
- pixelDensity(2);
- // Initial ball position
- ball = new Ball(width / 2, height - PADDLE_HEIGHT - BALL_RADIUS);
- paddleX = width / 2 - PADDLE_WIDTH / 2;
- paddleY = height - PADDLE_HEIGHT;
- // TODO: create the red bricks
- for(int i = 0; i < redBricks.length; i++){
- Brick b = new Brick(48*i,0,color(255,0,0));
- redBricks[i] = b;
- }
- // TODO: create the oranges bricks
- for(int i = 0; i < orangeBricks.length; i++){
- Brick b = new Brick(48*i,25,color(255,165,0));
- orangeBricks[i] = b;
- }
- // TODO: create the yellow bricks
- for(int i = 0; i < yellowBricks.length; i++){
- Brick b = new Brick(48*i,50,color(255,255,0));
- yellowBricks[i] = b;
- }
- // TODO: create the green bricks
- for(int i = 0; i < greenBricks.length; i++){
- Brick b = new Brick(48*i,75,color(0,128,0));
- greenBricks[i] = b;
- }
- // TODO: create the blue bricks
- for(int i = 0; i < blueBricks.length; i++){
- Brick b = new Brick(48*i,100,color(0,255,255));
- blueBricks[i] = b;
- }
- }
- public void draw()
- {
- if (!isGameOver)
- {
- background(75);
- fill(133,193,233);
- textSize(20);
- text("Score: "+ score, 350,400);
- gameOver();
- text("Lives: "+ lives,350,450);
- // Draw the ball.
- ball.drawBall();
- didHitSide();
- didHitTop();
- // Draw the paddle.
- fill(165, 42, 42);
- rect(paddleX, paddleY, PADDLE_WIDTH, PADDLE_HEIGHT);
- // TODO: check for wall collisions
- // TODO: draw the bricks
- for(int x = 0; x < redBricks.length; x++){
- if (redBricks[x] != null){
- Brick myBrick = redBricks[x]; myBrick.drawBrick();
- }
- }
- for(int x = 0; x < blueBricks.length; x++){
- if (blueBricks[x] != null){
- Brick myBrick = blueBricks[x]; myBrick.drawBrick();
- }
- }
- for(int x = 0; x < orangeBricks.length; x++){
- if (orangeBricks[x] != null){
- Brick myBrick = orangeBricks[x]; myBrick.drawBrick();
- }
- }
- for(int x = 0; x < yellowBricks.length; x++){
- if (yellowBricks[x] != null){
- Brick myBrick = yellowBricks[x]; myBrick.drawBrick();
- }
- }
- for(int x = 0; x < greenBricks.length; x++){
- if (greenBricks[x] != null){
- Brick myBrick = greenBricks[x]; myBrick.drawBrick();
- }
- }
- // TODO: check for brick collisions
- if(checkForCollisions()){
- }
- // TODO: check for wall collision
- if(didHitSide()){
- ball.reverseSpeedX();
- }
- if(didHitTop()){
- ball.reverseSpeedY();
- }
- }
- // TODO: check for paddle collision
- if(isBallCollidingWithPaddle()){
- ball.reverseSpeedY();
- }
- if(isOutOfBounds()){
- lives = lives-1;
- restartGame();
- }
- }
- public void mouseMoved(MouseEvent event)
- {
- int x = event.getX();
- paddleX = x - PADDLE_WIDTH / 2;
- if (!hasGameStarted)
- {
- ball.setX(x);
- }
- }
- public void mouseReleased(MouseEvent event)
- {
- if (!hasGameStarted)
- {
- ball.setSpeedX(8);
- ball.setSpeedY(-5);
- hasGameStarted = true;
- }
- }
- /**
- * Return true if the ball has hit the left or right sides.
- */
- public boolean didHitSide()
- {
- if(ball.getX()>480||ball.getX()<0){
- return true;
- }
- return false;
- }
- /**
- * Return true if the ball has hit the top side.
- */
- public boolean didHitTop()
- {
- if(ball.getY()<0){
- return true;
- }
- return false;
- }
- public boolean didHitPaddle(){
- if( ball.getX() >PADDLE_WIDTH+50){
- return true;
- }
- return false;
- }
- /**
- * Return true with the ball passed through the bottom.
- */
- public boolean isOutOfBounds()
- {
- // TODO
- if(ball.getY()>480){
- ball.setX((width / 2));
- ball.setY(height - PADDLE_HEIGHT - BALL_RADIUS);
- ball.setSpeedX(0);
- ball.setSpeedY(0);
- paddleX = width / 2 - PADDLE_WIDTH / 2;
- paddleY = height - PADDLE_HEIGHT;
- return true;
- }
- return false;
- }
- /**
- * Return true when the ball is colliding with the paddle.
- */
- public boolean isBallCollidingWithPaddle()
- {
- return isBallCollidingWithRect(paddleX, paddleY, PADDLE_WIDTH, PADDLE_HEIGHT);
- }
- /**
- * Detects whether the ball is colliding with a brick.
- * Use a loop to check every brick for collisions.
- * If a brick has been hit, remove it and return true.
- * If not bricks are being hit, return false.
- */
- public boolean checkForCollisions()
- {
- for(int i = 0; i < redBricks.length; i++){
- if(redBricks[i] != null){
- if(redBricks[i].isCollidingWithBall()){
- ball.reverseSpeedY();
- ball.reverseSpeedX();
- redBricks[i] = null;
- score = score + 1;
- }
- }
- }
- for(int i = 0; i < orangeBricks.length; i++){
- if(orangeBricks[i] != null){
- if(orangeBricks[i].isCollidingWithBall()){
- ball.reverseSpeedX();
- ball.reverseSpeedY();
- orangeBricks[i] = null;
- score = score + 1;
- }
- }
- }
- for(int i = 0; i < yellowBricks.length; i++){
- if(yellowBricks[i] != null){
- if(yellowBricks[i].isCollidingWithBall()){
- ball.reverseSpeedX();
- ball.reverseSpeedY();
- yellowBricks[i] = null;
- score = score + 1;
- }
- }
- }
- for(int i = 0; i < greenBricks.length; i++){
- if(greenBricks[i] != null){
- if(greenBricks[i].isCollidingWithBall()){
- ball.reverseSpeedX();
- ball.reverseSpeedY();
- greenBricks[i] = null;
- score = score + 1;
- }
- }
- }
- for(int i = 0; i < blueBricks.length; i++){
- if(blueBricks[i] != null){
- if(blueBricks[i].isCollidingWithBall()){
- ball.reverseSpeedY();
- ball.reverseSpeedX();
- blueBricks[i] = null;
- score = score + 1;
- return true;
- }
- }
- }
- return false;
- }
- /**
- * Loops over every brick. If an unbroken brick is found, true false.
- * If every brick has been broken, return true.
- */
- public boolean areAllBricksBroken()
- {
- for(int i = 0; i < blueBricks.length; i++){
- if(blueBricks[i] != null){
- }
- }
- for(int i = 0; i < redBricks.length; i++){
- if(redBricks[i] != null){
- }
- }
- for(int i = 0; i < orangeBricks.length; i++){
- if(orangeBricks[i] != null){
- }
- }
- for(int i = 0; i < greenBricks.length; i++){
- if(greenBricks[i] != null){
- }
- }
- for(int i = 0; i < yellowBricks.length; i++){
- if(yellowBricks[i] != null){
- return false;
- }
- }
- return true;
- }
- /**
- * Ends the game.
- * If param `didWin` is true, congratulate the use, else boo them.
- * Prompt the user to click to restart the game.
- * Ensure that the text is centered on the screen.
- * Remember to set `isGameOver` to true.
- */
- public void gameOver()
- {
- if(score == 50){
- background(244,208,63);
- fill(133,193,233);
- textSize(30);
- text("YOU WON!",170,240);
- textSize(20);
- text("Press anywhere to restart the game",50,290);
- ball.setX((width / 2));
- ball.setY(height - PADDLE_HEIGHT - BALL_RADIUS);
- paddleX = width / 2 - PADDLE_WIDTH / 2;
- paddleY = height - PADDLE_HEIGHT;
- ball.setSpeedX(0);
- ball.setSpeedY(0);
- if(mousePressed==true){
- restartGame();
- }
- }
- }
- /**
- * Restarts the game by reseting all of the instance variables.
- */
- public void restartGame()
- {
- // TODO
- size(480, 480);
- score=0;
- // Initial ball position
- paddleX = width / 2 - PADDLE_WIDTH / 2;
- paddleY = height - PADDLE_HEIGHT;
- ball.setSpeedX(0);
- ball.setSpeedY(0);
- hasGameStarted = false;
- ball.setX((width / 2));
- ball.setY(height - PADDLE_HEIGHT - BALL_RADIUS);
- paddleX = width / 2 - PADDLE_WIDTH / 2;
- paddleY = height - PADDLE_HEIGHT;
- for(int i = 0; i < redBricks.length; i++){
- Brick b = new Brick(48*i,0,color(255,0,0));
- redBricks[i] = b;
- }
- // TODO: create the oranges bricks
- for(int i = 0; i < orangeBricks.length; i++){
- Brick b = new Brick(48*i,25,color(255,165,0));
- orangeBricks[i] = b;
- }
- // TODO: create the yellow bricks
- for(int i = 0; i < yellowBricks.length; i++){
- Brick b = new Brick(48*i,50,color(255,255,0));
- yellowBricks[i] = b;
- }
- // TODO: create the green bricks
- for(int i = 0; i < greenBricks.length; i++){
- Brick b = new Brick(48*i,75,color(0,128,0));
- greenBricks[i] = b;
- }
- // TODO: create the blue bricks
- for(int i = 0; i < blueBricks.length; i++){
- Brick b = new Brick(48*i,100,color(0,255,255));
- blueBricks[i] = b;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement