J'utilise Processing; J'ai une balle qui rebondit quand elle frappe la frontière et change sa couleur au hasard. Maintenant j'ai besoin que cette balle change de couleur à chaque rebond. Je n'arrive pas à comprendre comment le faire.Changer de couleur tous les 3 rebonds
Voici mon code actuel:
float xPos;// x-position
float vx;// speed in x-direction
float yPos;// y-position
float vy;// speed in y-direction
float r;
float g;
float b;
void setup()
{
size(400, 300);
fill(255, 177, 8);
textSize(48);
// Initialise xPos to center of sketch
xPos = width/2;
// Set speed in x-direction to -2 (moving left)
vx = -2;
yPos = height/2;
vy = -1;
}
void draw()
{
r = random(255);
b = random(255);
g = random(255);
background(64);
yPos = yPos + vy;
// Change x-position on each redraw
xPos = xPos + vx;
ellipse(xPos, yPos, 50, 50);
if (xPos <= 0)
{
vx = 2;
fill(r, g, b);
} else if (xPos >= 400)
{
vx = -2;
fill(r, g, b);
}
if (yPos <= 0)
{
vy = 1;
fill(r, g, b);
} else if (yPos >= 300)
{
vy = -1;
fill(r, g, b);
}
}
Bienvenue sur SO. S'il vous plaît visitez [aide] et lisez [demander]. Sans voir votre code, comment pouvons-nous répondre? –
Eh bien, vous maintenez un compteur comme 'int counter = 0' ou quelque chose comme ça que vous augmentez chaque fois qu'il rebondit (' counter ++; '). Quand il atteint '3' comme' counter == 3' vous changez la couleur, utilisez donc une instruction 'if'. Après cela, vous réinitialisez le compteur: 'counter = 0'. Afin de vous aider davantage **, vous devez nous fournir ** les parties pertinentes de votre ** code **. – Zabuza
Cela ressemble à quelque chose que vous pouvez réaliser en utilisant l'opérateur de module (%), exemple: https://stackoverflow.com/questions/9008522/insert-tr-after-every-third-loop –