点数が変わるたびに色が変わるようにしましょう。
点数が入るたびに、draw() 内の background() の値が変わるようにしてみます。
新しい変数として、赤(r)、緑(g)、青(b)を追加します。
// 以下を追加
int r, g, b;
// setup()内 以下を追加
r = 0;
g = 0;
b = 0;
// draw()内 以下を修正
background(0);
↓ 以下に修正
background(r, g, b);
------------------------------
if (ballX+3 > width) {
enemyScore ++;
ballX = width/2;
ballY = height/2;
xSpeed = random(1, 4);
ySpeed = random(1, 4);
}
else if(ballX-3 < 0) {
myScore ++;
ballX = width/2;
ballY = height/2;
xSpeed = random(1, 4);
ySpeed = random(1, 4);
}
↓ 以下に修正
if (ballX+3 > width) {
enemyScore ++;
ballX = width/2;
ballY = height/2;
xSpeed = random(1, 4);
ySpeed = random(1, 4);
r = int(random(256));
g = int(random(256));
b = int(random(256));
}
else if(ballX-3 < 0) {
myScore ++;
ballX = width/2;
ballY = height/2;
xSpeed = random(1, 4);
ySpeed = random(1, 4);
r = int(random(256));
g = int(random(256));
b = int(random(256));
}
なお、r = int(random(256)); と記述すると、整数の 0 から 255 までの値がランダムで設定されます。
以下のように、点数が入るたびに背景色がランダムに変わります。



今日のコードです。
float ballX, ballY;
float racketY;
int xDir, yDir;
float xSpeed, ySpeed;
float enemyY;
float easing;
int myScore = 0;
int enemyScore = 0;
int mySet = 0;
int enemySet = 0;
int r, g, b;
void setup() {
size (480,320);
ballX = width/2;
ballY = height/2;
racketY = height/2;
easing = 0.1;
xDir = 1;
yDir = 1;
xSpeed = 1;
ySpeed = 1;
r = 0;
g = 0;
b = 0;
}
void draw() {
background(r, g, b);
strokeWeight (1);
stroke(255);
for ( int i = 0; i < height; i += 10 ){
line(width/2, i, width/2, i+5);
}
//my racket
float targetY = mouseY;
racketY += (targetY - racketY) * easing;
rect(440, racketY-25, 8, 50);
//enemy racket
enemyY += (ballY - enemyY) * easing;
rect(40, enemyY-25, 8, 50);
ellipse(ballX, ballY, 6, 6);
if((ballY+3>height) || (ballY-3<0)) yDir *= -1;
if ((ballX+3 >= 440) && (ballX+3 <= 448) && (ballY > racketY-25) && (ballY < racketY+30))
xDir *= -1;
if ((ballX-3 <= 48) && (ballX-3 >= 40) && (ballY > enemyY-25) && (ballY < enemyY+25))
xDir *= -1;
if (ballX+3 > width) {
enemyScore ++;
ballX = width/2;
ballY = height/2;
xSpeed = random(1, 4);
ySpeed = random(1, 4);
r = int(random(256));
g = int(random(256));
b = int(random(256));
}
else if(ballX-3 < 0) {
myScore ++;
ballX = width/2;
ballY = height/2;
xSpeed = random(1, 4);
ySpeed = random(1, 4);
r = int(random(256));
g = int(random(256));
b = int(random(256));
}
ballX += xSpeed * xDir;
ballY += ySpeed * yDir;
textAlign(CENTER, CENTER);
textSize(30);
text(enemySet, 80, 20);
text(enemyScore, 160, 20);
text(mySet, 320, 20);
text(myScore, 400, 20);
if (myScore > 2) {
mySet++;
myScore = 0;
}
if (enemyScore > 2) {
enemySet++;
enemyScore = 0;
}
xSpeed += 0.01;
ySpeed += 0.01;
textSize(80);
if (enemySet >= 3){
text("You LOSE!", width/2, 130);
textSize(40);
text("Click to restart", width/2, 200);
}
else if (mySet >= 3){
text("You WIN!", width/2, height/2-30);
textSize(40);
text("Click to restart", width/2, height/2+30);
}
if(mousePressed){
ballX = width/2;
ballY = height/2;
mySet = 0;
myScore = 0;
enemySet = 0;
enemyScore = 0;
xSpeed = 1;
ySpeed = 1;
}
}