Moortiii icon

Pong - Singleplayer

Moortiii | PRO | 02/10/17 10:39:42 AM UTC | 0 ⭐ | 374 👁️ | Never ⏰ | []
Java |

1.51 KB

|

None

|

0 👍

/

0 👎

Ball b;
Paddle p;
int score = 0;
 
void setup() {
  frameRate(144);
  size(640, 380);
  b = new Ball(50, height/2, 50);
  p = new Paddle(width-100, height/2, 30, 120);
}
 
void draw() {
  background(100);
  b.display();
  b.move();
  b.bounce();
  p.display();
  //p.move();
  if(b.overlaps(p)){
    b.turn();
    score += 1;
  }
  
  
  String myText = "Score: " + score;
  textSize(32);
  textAlign(CENTER);
  text(myText, width/2, 50);
}
 
class Ball {
  float x, y, d;
  int xdirection = 1;
  int ydirection = 1;
  float xspeed = 4;
  float yspeed = 4;
 
  Ball(float tempX, float tempY, float tempD) {
    x = tempX;
    y = tempY;
    d = tempD;
  }
 
  void display() {
    ellipse(x, y, d, d);
  }
 
  void move() {
    x = x + (xspeed * xdirection);
    //y = y + (yspeed * ydirection);
  }
 
  void bounce() {
    if (x < 0+d/2 || x > width-d/2) {
      xdirection *= -1;
    }
    if (y < 0+d/2 || y > height-d/2) {
      ydirection *= -1;
    }
  }
  
  boolean overlaps(Paddle paddle){
    float dist = dist(x, y, paddle.x, paddle.y);
    if(dist < d/2 + paddle.h/2){
      return true;
    } else {
      return false;
    }
  }
  
  void turn() {
    xdirection *= -1;
  }
}
 
class Paddle {
  float x, y, w, h;
  Paddle(float tempX, float tempY, float tempH, float tempW) {
    x = tempX;
    y = tempY;
    h = tempH;
    w = tempW;
  }
  
  void display(){
    rectMode(CENTER);
    rect(x, y, h, w);
  }
  
  void move(){
    y = mouseY;
  }
}

Comments