Gracias mandanga, yo estoy done, he visto bastantes otros pongs y veo como lo hacen, en este caso he usado lo mismo que un youtuber y está todo igual y me sigue diciendo que le sobra ese void Moviment;
// Mides Tauler
int tx = 640; // Pantalla VGA 640
int ty = 480; // x 480
// Mides camp
int cx = tx - 20; // Deixem 10 punts per banda de marge
int cy = ty - 20;
// variables pel mouse
float mx;
float my;
// variables pel marcador
int score1=0;
int score2=0;
boolean subir=true;
boolean avanzar=true;
float x;
float x2;
//Variables per a la raqueta que mourem amb el teclat
float raquetaX, raquetaY, raquetaAmp, RaquetaA;
float velocitat;
boolean puja = false;
boolean baixa = false;
// variables per a la pilota
float px; // Posició x
float py; // Posició y
int dirx = 1; // direcció de moviment x
int diry = 1; // direcció de moviment y
// variables per detecció de columna, per raqueta/pilota
float i1x; // Raqueta esquerra
float i1y;
float i2x; // Raqueta dreta
float i2y;
// aleatorietat
float rx;
float ry;
int irx;
int iry;
void setup() // Rutina inicialitzacions
{
size(640, 480); // Obrim la finestra
fill(255); // definim el color de dibuix (blanc)
noStroke(); // no dibuixem línies de contorn
px = 320; // posició inicial de la pilota x
py = 200; // posició inicial de la pilota y
frameRate(20);
}
void draw() // bucle de programa
{
rx = random(0,1);
ry = random(0,1);
if (rx > 0.5) irx = 1; else irx = 0;
if (ry > 0.5) iry = 1; else irx = 0;
Moviment();
background(#66D36B); // fons negre
// dibuixem el camp usant la funció rectangle
rect(10,10,5,cy); // Línia vertical esquerra
rect(10,10,cx,5); // Línia horitzontal superior
rect(10,cy+5,cx,5); // Línia horitzontal inferior
rect(cx+5,10,5,cy); // Línia vertical dreta
rect(320,10,5,cy);
arc(320,240,70,70,250,390);
// Moviment raquetes
mx = mouseX; // llegeix la posició x del mouse
my = mouseY; // llegeix la posició y del mouse
if (my<20) my=20; // limitem moviment de la raqueta per dalt
if (my>410) my=410;// limitem moviment de la raqueta per baix
if (raquetaY<20) raquetaY=20;
if (raquetaY>410) raquetaY=410;
rect(590,my,15,50);// dibuixa raqueta dreta
rect(raquetaX, raquetaY, raquetaAmb, raquetaA); // dibuixa raqueta esquerre
void Moviment() {
if (puja == true){
raquetaY = raquetaY + velocitat;
}
if (baixa == true){
raquetaY = raquetaY-velocitat;
}
}
// moviment de la pilota
if (dirx == 1)
{px = px+3;} else {px = px-3;} // mou la pilota
if (px > 620) dirx = 0;// quan arriba al límit canvia de sentit
if (px < 15) dirx =1; // a dreta i esquerra
if (diry == 1)
{py = py + 3;} else {py = py -3;} // mou la pilota
if (py > 460) diry = 0;// quan arriba al límit canvia de sentit
if (py < 15) diry =1; // a dalt i a baix
ellipse(px,py,10,10); // i ara dibuixa la pilota
// Detector de col.lisions pilota/raqueta
i1x = abs(35-px); // diferència entre raqueta i pilota
i1y = abs(my+25-py);
i2x = abs(590-px);
i2y = abs(my+25-py);
// per la raqueta esquerra (canviem direcció x la pilota)
if ((i1x < 7.5) && (i1y < 25))
{if (dirx == 1) dirx = 0; else dirx = 1;
// factor aleatori de rebot
if (irx == 1) {if (diry == 1) diry = 0; else diry = 1;}
}
// per la raqueta dreta (canviem direcció x la pilota)
if ((i2x < 7.5) && (i2y < 25))
{if (dirx == 1) dirx = 0; else dirx = 1;
// factor aleatori de rebot
if (iry == 0) {if (diry == 1) diry = 0; else diry = 1;}
}
// si la pilota passa de la raqueta esquerra
if (px < 20)
{
px = 320; // situar la pilota al mig del camp
py = 200;
// factor aleatori de saque
if (irx == 1) {if (diry == 1) diry = 0; else diry = 1;}
delay(1000); // esperar 1 segon
}
// si la pilota passa de la raqueta dreta
if (px >615)
{
px = 320; // situar la pilota al mig del camp
py = 200;
// factor aleatori de saque
if (iry == 0) {if (diry == 1) diry = 0; else diry = 1;}
delay(1000); // esperar 1 segon
}
voidKeyPressed () {
if (key == 'w' || key == 'W') {
puja = true;
}
if (key == 's' || key == 'S') {
baixa = true;
}
}
voidKeyReleased () {
if (key == 'w' || key == 'W') {
puja = false;
}
if (key == 's' || key == 'S') {
baixa = false;
}
}
//Marcador
x=px;
if (x < 21)
{
score2++;
}
{
fill(255);
textSize(32);
text(score2,500,120);
}
x2=px;
if (x2 > 613 )
{
score1++;
}
{
fill(255);
textSize(32);
text(score1,140,120);
}
}
Sigo en obras a ver si me sale, quería ponerle más cositas pero estoy hasta la poronga del processing , ya me curraré el proximo si le da la gana de explicar como se hacen las cosas y no nos da el enlace de la pag principal de processing y ala
Lo que he hecho es, primero definir Moviment() que supongo se tiene que hacer (dentro el void draw, que va de principio a fin de hecho). Luego he usado el keypressed y keyreleased para controlar el up y down con w y s , y finalmente la función del movimiento según si up y down son ciertos o falsos. Sigue dándome el error en el void.