//Interactive Toy by Zachery Pelletier /* You move the rectangle left and right to capture the balls. When the balls go over your rectangle you receive a few points. Thanks to the help of a few classmates and google, I made this simple toy. */ //setting some variables float spawn = random(40, 360); float ballX = spawn; float ballY = 160; float speed = 4; int score = 0; int radius = 10; void setup() { size(400, 400); ellipseMode(CENTER); rectMode(CORNERS); } void draw() { display(); move(); ball(); checkpoint(); } // Moving of the ball void move() { ballY = ballY + speed; if (ballY > 440) { ballY = 180; ballX = spawn = random(40, 360); } } // Drawing of the ball void ball() { stroke(2); fill(random(255), .55, 255); ellipse(ballX, ballY, 20, 20); } //Displaying the canons and others void display() { rectMode(CORNERS); background(255); noStroke(); fill(46, 38, 32); rect(0, 0, 400, 120); noStroke(); fill(255); triangle(80, 120, 120, 60, 160, 120); triangle(240, 120, 280, 60, 320, 120); fill(83, 83, 83); quad(260, 90, 300, 90, 300, 140, 260, 140); quad(100, 90, 140, 90, 140, 140, 100, 140); triangle(280, 130, 360, 160, 200, 160); triangle(120, 130, 200, 160, 40, 160); triangle(120, 60, 140, 90, 100, 90); triangle(280, 60, 300, 90, 260, 90); rectMode(CENTER); rect(mouseX, 360, 40, 10); } //displaying score void displayScore() { println(score); } //Checking if collision. Adding to score if collision is true void checkpoint() { if (mouseX >= ballX - radius && mouseX <= ballX + radius && mouseY >= ballY - radius && mouseY <= ballY + radius) { score = score + 1; displayScore(); } }