Guest User

Untitled

a guest
Apr 26th, 2023
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.12 KB | None | 0 0
  1. Ball b_ball;
  2. Ball y_ball;
  3. Ball r_ball;
  4. void setup() {
  5.   size(800, 800);
  6.   background(0);
  7.   b_ball = new Ball(50, 400, 100,2,2,color(0, 0,255));
  8.   y_ball = new Ball(300, 200, 200,1,1,color(255,255, 0));
  9.   r_ball = new Ball(700, 600, 100,3,3,color(255,0,0));
  10. }
  11.  
  12. void draw() {
  13.   background(0);
  14.   b_ball.run();
  15.   r_ball.run();
  16.   y_ball.run();
  17. }
  18. class Ball {
  19.   int x, y, diameter,radius, x_speed, y_speed, ball_color;
  20.   Ball(int x_, int y_, int diameter_,int x_speed_, int y_speed_, int ball_color_) {
  21.     x = x_;
  22.     y = y_;
  23.     diameter = diameter_;
  24.     x_speed = x_speed_;
  25.     y_speed = y_speed_;
  26.     ball_color = ball_color_;
  27.   }//close Ball constructor
  28.  
  29.   void run() {
  30.     display();
  31.     move();
  32.     hit();    
  33.   }
  34.  
  35.   void display() {
  36.     stroke(0);
  37.     fill(ball_color);
  38.     ellipse(x, y, diameter, diameter);
  39.   }
  40.   void move() {
  41.     radius = diameter/2;
  42.     if (x>=0&&y>=0) {
  43.       x+=x_speed;
  44.       y+=y_speed;
  45.       if (x > width-radius || x < radius) {
  46.         x_speed*=-1;
  47.       }
  48.       if (y > height-radius|| y < radius) {
  49.         y_speed*=-1;
  50.       }
  51.     }
  52.   }
  53.   void hit(){
  54.     if(collision()==true){
  55.       r_ball.ball_color = 125;
  56.       y_ball.ball_color = 125;
  57.       b_ball.ball_color = 125;
  58.     }
  59.     else{
  60.       r_ball.ball_color = color(255,0,0);
  61.       y_ball.ball_color = color(255,255,0);
  62.       b_ball.ball_color = color(0,0,255);
  63.     }
  64.   }
  65.   boolean collision(){
  66.     float dist_b_y,dist_y_r,dist_b_r;
  67.     float dist_a,dist_b,dist_c;
  68.    
  69.     dist_b_y = (b_ball.x-y_ball.x)*(b_ball.x-y_ball.x)+(b_ball.y-y_ball.y)*(b_ball.y-y_ball.y);
  70.     dist_a = sqrt(dist_b_y);
  71.    
  72.     dist_y_r = (y_ball.x-r_ball.x)*(y_ball.x-r_ball.x)+(y_ball.y-r_ball.y)*(y_ball.y-r_ball.y);
  73.     dist_b = sqrt(dist_y_r);
  74.    
  75.     dist_b_r = (b_ball.x-r_ball.x)*(b_ball.x-r_ball.x)+(b_ball.y-r_ball.y)*(b_ball.y-r_ball.y);
  76.     dist_c = sqrt(dist_b_r);
  77.    
  78.     if(dist_a-b_ball.radius<y_ball.radius){return true;}
  79.    
  80.     else if(dist_b-y_ball.radius<r_ball.radius){return true;}
  81.    
  82.     else if(dist_c-r_ball.radius<b_ball.radius){return true;}
  83.    
  84.     return false;
  85.   }
  86.  
  87. }//close Ball class
Advertisement
Add Comment
Please, Sign In to add comment