int pl_x=20, pl_y; int cpu_x, cpu_y, cpu_speed=5; int ball_x=100, ball_y=100; int ball_x_dir=1; // 1 = right, 0 = left int ball_y_dir=1; // 0 = down, 1 = up int paddle_w = 20; int paddle_h = 80; int ball_size = 20; int ball_speed = 2; void setup() { size(700, 500); smooth(); initBall(); cpu_x = width-paddle_w-20; cpu_y = height/2; } void draw() { background(127); pl_y = mouseY; if (pl_y + paddle_h >= height) pl_y = height - paddle_h - 1; rect (pl_x, pl_y, paddle_w, paddle_h); rect (cpu_x, cpu_y, paddle_w, paddle_h); ellipse(ball_x, ball_y, ball_size, ball_size); moveBall(); } void moveBall() { if (ball_x_dir == 1) ball_x += ball_speed; else ball_x -= ball_speed; if (ball_y_dir == 1) ball_y -= ball_speed; else ball_y += ball_speed; checkCollision(); moveCPUPaddle(); } void moveCPUPaddle() { if (ball_y < cpu_y && ball_x_dir==1) cpu_y -= cpu_speed; else if (ball_y > cpu_y && ball_x_dir == 1) cpu_y += cpu_speed; if (ball_x_dir == 0) { if (cpu_y < (height/2)) cpu_y += cpu_speed; else if (cpu_y > (height/2)) cpu_y -= cpu_speed; } if (cpu_y <= 0) cpu_y = 0; if (cpu_y + paddle_h >= height) cpu_y = height - paddle_h - 1; } void initBall() { ball_x = int (random(100, width - 100)); ball_y = int (random(100, height - 100)); ball_x_dir = int (random(0, 2)); ball_y_dir = int (random(0, 2)); ball_speed = 2; } void checkCollision() { if (ball_x + ball_size/2 >= cpu_x && ball_x <= cpu_x + paddle_w && ball_y > cpu_y && ball_y + ball_size/2 < cpu_y + paddle_h && ball_x_dir == 1) { ball_x_dir = 0; ball_speed++; } else if (ball_x - ball_size/2 < pl_x + paddle_w && ball_x > pl_x && ball_y > mouseY && ball_y < mouseY + paddle_h && ball_x_dir == 0) { ball_x_dir = 1; ball_speed++; } else if (ball_x + ball_size/2 < 0 || ball_x > width) { initBall(); } if (ball_y <= (ball_size/2)) ball_y_dir = 0; else if (ball_y + ball_size > height + (ball_size/2)) ball_y_dir = 1; if (ball_speed > 5) ball_speed = 5 ; }