Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.82 KB | None | 0 0
  1. import acm.graphics.*;
  2. import acm.program.*;
  3. import acm.util.*;
  4.  
  5. import java.applet.*;
  6. import java.awt.*;
  7. import java.awt.event.*;
  8.  
  9. public class Breakout extends GraphicsProgram {
  10.  
  11.     public static final int APPLICATION_WIDTH = 400;
  12.     public static final int APPLICATION_HEIGHT = 600;
  13.  
  14.     private static final int WIDTH = APPLICATION_WIDTH;
  15.     private static final int HEIGHT = APPLICATION_HEIGHT;
  16.  
  17.     private static final int PADDLE_WIDTH = 60;
  18.     private static final int PADDLE_HEIGHT = 10;
  19.  
  20.     private static final int PADDLE_Y_OFFSET = 30;
  21.  
  22.     private static final int NBRICKS_PER_ROW = 10;
  23.     private static final int NBRICK_ROWS = 10;
  24.  
  25.     private static final int BRICK_SEP = 4;
  26.     private static final int BRICK_WIDTH = (WIDTH - (NBRICKS_PER_ROW - 1) * BRICK_SEP) / NBRICKS_PER_ROW;
  27.     private static final int BRICK_HEIGHT = 8;
  28.     private static final int BRICK_Y_OFFSET = 70;
  29.     private final double BRICK_X_OFFSET = (getWidth()/2.0)-((BRICK_WIDTH*NBRICKS_PER_ROW+BRICK_SEP*(NBRICKS_PER_ROW-1))/2);
  30.  
  31.     private static final int BALL_RADIUS = 10;
  32.  
  33.     private static final int NTURNS = 3;
  34.  
  35.     private static final GRect PADDLE = new GRect(PADDLE_WIDTH, PADDLE_HEIGHT);
  36.    
  37.     public void run() {
  38.         setup();
  39.     }
  40.  
  41.     private void setup(){
  42.         putBricks();
  43.         putPeddle();
  44.         putBall();
  45.         putFrame();
  46.         addMouseListeners();
  47.     }
  48.  
  49.     private void putBricks() {
  50.         for(int y=0; y<NBRICK_ROWS; y++){
  51.             double Y = BRICK_Y_OFFSET + BRICK_HEIGHT*y + BRICK_SEP*y;
  52.             for(int i=0; i<NBRICKS_PER_ROW;i++){
  53.                 double X = BRICK_WIDTH*i + BRICK_SEP*(i+1);
  54.                 GRect brick = new GRect(X, Y, BRICK_WIDTH, BRICK_HEIGHT);
  55.                 add(brick);
  56.                 brick.setFilled(true);
  57.                 if(y==0 || y==1){
  58.                     brick.setFillColor(Color.RED);
  59.                     brick.setColor(Color.RED);
  60.                 } else if (y==2 || y==3){
  61.                     brick.setFillColor(Color.ORANGE);
  62.                     brick.setColor(Color.ORANGE);
  63.                 } else if (y==4 || y==5){
  64.                     brick.setFillColor(Color.YELLOW);
  65.                     brick.setColor(Color.YELLOW);
  66.                 } else if (y==6 || y==7){
  67.                     brick.setFillColor(Color.GREEN);
  68.                     brick.setColor(Color.GREEN);
  69.                 } else if (y==8 || y==9){
  70.                     brick.setFillColor(Color.CYAN);
  71.                     brick.setColor(Color.CYAN);
  72.                 }
  73.             }
  74.         }
  75.     }
  76.     private void putPeddle() {
  77.         double PADDLEX = (getWidth()/2)-(PADDLE_WIDTH/2);
  78.         add(PADDLE,PADDLEX,getHeight()-PADDLE_Y_OFFSET);
  79.         PADDLE.setColor(Color.BLACK);
  80.         PADDLE.setFilled(true);
  81.         PADDLE.setFillColor(Color.BLACK);
  82.  
  83.     }
  84.     private void putBall() {
  85.         GOval ball = new GOval(getWidth()/2,getHeight()/2, 10, 10);
  86.         add(ball);
  87.         ball.setColor(Color.BLACK);
  88.         ball.setFillColor(Color.BLACK);
  89.         ball.setFilled(true);
  90.     }
  91.     private void putFrame() {
  92.         add(new GLine(2,2,getWidth()-2,2));
  93.         add(new GLine(2,getHeight()-2,getWidth()-2,getHeight()-2));
  94.         add(new GLine(2,2,2,getHeight()-2));
  95.         add(new GLine(getWidth()-2,2,getWidth()-2,getHeight()-2));
  96.  
  97.     }
  98.     public void mouseMoved(MouseEvent e){
  99.         double mouseX = e.getX();
  100.         double newPaddleX;
  101.  
  102.         if (PADDLE != null) {
  103.             if (mouseX < (PADDLE_WIDTH/2) + 2){
  104.                 newPaddleX = 2;
  105.             }else if (mouseX > WIDTH - PADDLE_WIDTH/2 - 2){
  106.                 newPaddleX = WIDTH - PADDLE_WIDTH - 2;
  107.             }else{
  108.                 newPaddleX = mouseX - PADDLE_WIDTH/2;
  109.             }
  110.             PADDLE.setLocation(newPaddleX, getHeight() - PADDLE_Y_OFFSET);
  111.         }
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement