Fonction

Signaler
Messages postés
314
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
20 août 2006
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Voici ma fonction , le compilateur me dit:
Raquette.cs(29): 'Casse_Brique.Raquette.Teste_Collision_Raquette(Casse_Brique.Balle)' : tous les chemins de code ne retournent pas nécessairement une valeur

Je comprends pas pourquoi!!!
Si quelqu'un peut m'aider, Merci!!!!!!!!!

public
bool Teste_Collision_Raquette(Balle balle)


{



//si la balle tape dessus



if(((balle.X + balle.diametre) >= X) && (balle.X <= (X + largeur)) &&


((balle.Y + balle.diametre) >= Y) && ((balle.Y + balle.diametre) <= (Y + hauteur)))


{


MessageBox.Show("Balle X:" + balle.X.ToString() + " Balle Y:" + balle.Y.ToString() + "\n" +


"Raquette X:" + X.ToString() + " Raquette Y:" + Y.ToString());



if(balle.X > balle.X_prec)


{



//balle.VitesseX = alea.Next(6,10);



//balle.VitesseY = aleaY.Next(1,5);


balle.X = balle.X + balle.VitesseX;


balle.Y = balle.Y - balle.VitesseY;



return
true;


}



else
if(balle.X < balle.X_prec)


{



//balle.VitesseX = alea.Next(1,5);



//balle.VitesseY = aleaY.Next(6,10);


balle.X = balle.X - balle.VitesseX;


balle.Y = balle.Y - balle.VitesseY;



return
true;


}


}



else


{



return
false;


}


}

RM50man

1 réponse

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Salut, le premier bloc ne retourne pas de valeur si certaine conditions sont remplies :



public
bool Teste_Collision_Raquette(Balle balle)
{

//si la balle tape dessus
if (((balle.X + balle.diametre) >= X) && ... && ((balle.Y + balle.diametre) <= (Y + hauteur)))
{
MessageBox.Show(
"Balle X:" + ...
+ X.ToString() +
" Raquette Y:"+ Y.ToString());

if (balle.X > balle.X_prec)
{

balle.X = balle.X + balle.VitesseX;
balle.Y = balle.Y - balle.VitesseY;

return
true;
}

else
if (balle.X < balle.X_prec)
{

balle.X = balle.X - balle.VitesseX;
balle.Y = balle.Y - balle.VitesseY;

return
true;
}
// Ne retourne rien dans ce cas
}

else return
false;
}

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever