Advertisement
CleverCode

Bouncing Ball

Feb 24th, 2020
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.42 KB | None | 0 0
  1. int numBalls = 3;
  2. Ball b[] = new Ball [numBalls];
  3.  
  4. void setup() {
  5.   size(600, 400);
  6.   for (int i = 0; i < 3; i++) {
  7.     b[i] = new Ball(random(600), random(300, 400), 20);
  8.   }
  9. }
  10.  
  11. void draw() {
  12.   background(0);
  13.  
  14.   for (int i = 0; i < 3; i++) {
  15.     b[i].generate();
  16.     b[i].moveBall();
  17.   }
  18. }
  19.  
  20. class Ball {
  21.   float ballR, ballX, ballY;
  22.   float speedY = 2;
  23.   float speedX = 2;
  24.   float colour = 100;
  25.   float colour2 = 100;
  26.   float colour3 = 100;
  27.  
  28.   Ball(float x, float y, float r) {
  29.     this.ballX = x;
  30.     this.ballY = y;
  31.     this.ballR = r;
  32.   }
  33.  
  34.   float getX() {
  35.     return ballX;
  36.   }
  37.  
  38.   float getY() {
  39.     return ballY;
  40.   }
  41.   float getR() {
  42.     return ballR;
  43.   }
  44.   void flipSpeedX() {
  45.     speedX = -speedX;
  46.   }
  47.  
  48.   void flipSpeedY() {
  49.     speedY = -speedY;
  50.   }
  51.  
  52.   void generate() {
  53.     fill(colour, colour2, colour3);
  54.     ellipse(ballX, ballY, ballR, ballR);
  55.   }
  56.  
  57.   void changeColour() {
  58.     colour = random(255);
  59.     colour2 = random(255);
  60.     colour3 = random(255);
  61.     generate();
  62.   }
  63.  
  64.   void moveBall() {
  65.     ballX += speedX;
  66.     ballY+= speedY;
  67.  
  68.     if (ballY > height ) {
  69.       speedY = -speedY;
  70.       changeColour();
  71.     } else if (ballY <= 0) {
  72.       speedY = -speedY;
  73.       changeColour();
  74.     }
  75.     if (ballX > width ) {
  76.       speedX = -speedX;
  77.       changeColour();
  78.     } else if (ballX <= 0) {
  79.       speedX = -speedX;
  80.       changeColour();
  81.     }
  82.   }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement