Perdona pero no veo la diferencia en el código cuando te da los distintos errores.
Mira el primer caso:
Código:
if(rect.intersects(rect2)){
comprobarIntersecta(rec.getGlobalBounds(),rec2.getGlobalBounds());
}
Estás pasando 2 argumentos.
Código:
error: too many arguments to function 'void comprobarIntersecta()'|
"Demasiados argumentos en la función comprobarIntersecta()". Esa función no tiene argumentos, está mal declarada...
Si ves el mensaje que escribí que empezaba
Cita: Lo que has hecho tiene la misma lógica de lo que yo te comentaba.
Te escribí esta función
Código:
void comprobarIntersecta(sf::FloatRect A, sf::FloatRect B){
//A es el que se mueve. B el que está quieto
if(A.top-(B.top+B.height)==0){//Choca con la parte de arriba por abajo del que está quieto
chocar[0]=true;
}
if((A.top+B.height)-B.top)==0){//Choca con la parte de abajo por arriba del que está quieto
chocar[1]=true;
}
if((A.left+A.width)-B.left>0){//Choca con la derecha por la izquierda del que está quieto
chocar[2]=true;
}
if(A.left-(B.left+B.width)>0){//Choca con la izquierda por la derecha del que está quieto
chocar[2]=true;
}
}
Esa función tiene los dos argumentos. Revisa tu código... estás haciendo una mezcla de todo...