Hola, he estado haciendo un programa que simule el juego ping pon, pero la pelota algunas veces choca con la pala blanca y otras veces no, adjunto mi codigo
int posy=250;
int posx=250;
int posix=600;
int posiy=300;
int ballSize=100;
int dirx=5;
int diry=5;
int i=1;
int j=2;
PFont font;
void setup(){
fullScreen();
}
void draw()
{
background(0);
fill(255);
noStroke();
strokeWeight(5);
stroke(255);
line(width/2,height/2-1000,width/2,height/2+1000);
strokeWeight(0);
//score
font = loadFont("Arial-Black-48.vlw"); // Leer la fuente
textFont(font);
fill(255);
text(i, width/2-200, 50); // Escribvir en las coordenadas (0,40)
text(j, width/2+150, 50);
//cuerpo
rect(25,posy,50,200);
rect(1295,posx,50,200);
//pelota
fill(255,0,0);
posix+=dirx*1;
posiy+=diry*1;
circle(posix,posiy,ballSize);
if(posix<100 && posiy>posx && posiy<posx+180){
dirx=dirx*-1;
}
if(posix>width-100 && posiy>posy && posiy>posy+180){
dirx=dirx*-1;
}
if(posiy>=height-ballSize/2){
diry=diry*-1;
}
if(posiy<=0+ballSize/2){
diry=diry*-1;
}
if(posix>1400){
posix=width/2; posiy=height/2; i=i+1;
}
if(posix<-50){
posix=width/2; posiy=height/2; j=j+1;
}
}
void keyPressed()
{
if(keyCode=='S')
posy=posy+5;
if(posy<=5) //limita la trayectoria hacia arriba
posy=5;
if(keyCode=='W')
posy=posy-5;
if(posy>=575) //limita la trayectoria hacia abajo
posy= 575;
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if(keyCode=='L')
posx=posx+5;
if(posx<=5) //limita la trayectoria hacia arriba
posx=5;
if(keyCode=='O')
posx=posx-5;
if(posx>=575) //limita la trayectoria hacia abajo
posx= 575;
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if(keyCode=='1'){
i=i+1;
}
if(keyCode=='2'){
j=j+1;
}
}