Hi I am making a ball catching game using a controller and I am having trouble with collision detection. I want it so when the ball comes into contact with the bucket at the bottom the ball will disappear and the score will go up. i am yet to do the score part but wanted to focus on the ball collision first. Can anyone help?
import org.gamecontrolplus.gui.;
import org.gamecontrolplus.;
import net.java.games.input.*;
ControlIO control;
ControlDevice stick;
Configuration config;
ControlDevice gpad;
int radius =30, dX = 1, dY = 0;
float x=400, y=750, speed=4;
PImage img;
float px, py;
boolean trailOn;
ArrayList shadows = new ArrayList();
ArrayList trail = new ArrayList();
Drop [] drops = new Drop[5];
public void setup() {
size(1000, 700);
for (int i = 0; i < drops.length; i++){
drops[i] = new Drop();
}
img = loadImage(“Gun.png”);
// Initialise the ControlIO
control = ControlIO.getInstance(this);
// Find a device that matches the configuration file
stick = control.getMatchedDevice(“joystick”);
if (stick == null) {
println(“No suitable device configured”);
System.exit(-1); // End the program NOW!
}
// Setup a function to trap events for this button
stick.getButton(“SHADOW”).plug(this, “dropShadow”, ControlIO.ON_RELEASE);
}
// Poll for user input called from the draw() method.
public void getUserInput() {
px = map(stick.getSlider(“X”).getValue(), -1, 1, 0, width);
trailOn = stick.getButton(“TRAIL”).pressed();
}
// Event handler for the SHADOW button
public void dropShadow() {
// Make sure we have the latest position
getUserInput();
shadows.add(new PVector(px, py, 40));
}
public void draw() {
getUserInput(); // Polling
background(255, 255, 240);
for (int i = 0; i < drops.length; i++){
drops[i].show();
drops[i].fall();
// Draw shadows
for (PVector shadow : shadows)
ellipse(shadow.x, shadow.y, shadow.z, shadow.z);
if (trailOn)
trail.add(new PVector());
else
trail.clear();
if (trail.size() > 1) {
stroke(132, 0, 0);
for (int n = 1; n < trail.size(); n++) {
PVector v0 = trail.get(n-1);
PVector v1 = trail.get(n);
line(v0.x, v0.y, v1.x, v1.y);
v0 = v1;
}
}
// Show position
noStroke();
fill(255, 64, 64, 64);
imageMode(CENTER);
image(img,px,700, 300,300);
}
}
class Drop {
float x = random(width);
float y = random(-200,-100);
float yspeed = random (4, 10);
void fall(){
y = y + yspeed;
if(y > height) {
y = random(-200,-100);
}
}
void show (){
stroke(138,43, 226);
ellipse(x,y,24,24);
}
}