Il seguente progetto, realizzato dall’alunno Costa Andrea, consente di incrementare il punteggio con modalità diverse a secondo della posizione della racchetta.
Codice sorgente:
// pong
float rectX = 0;
int conta = 0;
float x;
float y = 20;
float yspeed = 3;
float xspeed = 0;
float x1 = 100;
int punteggio = 0;
float rectY = 400;
boolean punto = true;
PFont f;
void setup () {
size(500, 500);
x = random(100, 400);
//println(x);
ellipse(x, 40, 30, 30);
/*1° parametro: x centro cerchio, 2° y centro cerchio,
3° larghezza
4° altezza
*/
f = createFont(“Arial”, 16, true);
background(190);
}
void draw () { // funzione per disegnare i segmenti
clear();
background(190);
stroke(71, 191, 122);// setta il colore ai segmenti, assegnando la massima intensità al rosso e la minima al verde e al blu otteniamo il rosso
textFont(f, 16);
rectX = mouseX;
rectY = mouseY;
fill(71, 191, 122); // setta il colore delle forme
text(“Punteggio: ” + punteggio, 180, 470);
y += yspeed;
x += xspeed;
if((x > 0 && x < 20) || (x < 500 && x > 480))
{
xspeed = -xspeed;
}
if(y < rectY && y > rectY-20)
{
if(x > rectX && x < rectX+100)
{
if(punto)
{
if(rectY < 120)
punteggio += 3;
else if(rectY < 250)
punteggio+= 2;
else
punteggio++;
punto = false;
}
yspeed = -3;
if (x > rectX && x < rectX + 50)
{
xspeed = random(-5, -1);
}
else
{
xspeed = random(1, 5);
}
}
}
else if(y > 0 && y < 20)
{
yspeed = 3;
punto = true;
if (xspeed < 0)
{
xspeed = random(-5, -1);
}
else
{
xspeed = random(1, 5);
}
}
if(y > 500)
{
text(“GAME OVER”, width/2-50, height/2);
}
ellipse(x, y, 30, 30);
rect(rectX, rectY, 100, 20);
println(rectY);
/*
1° parametro: x
2° y
3° larghezza
4° altezza
*/
}