Bonjour,
Je m'excuse par avance si je post ce message dans la mauvaise rubrique, ce qui d'ailleurs risque d'être le cas mais je sais pas trop ou exposer mon problème...
(J'aurais bien été sur Ziggyware mais j'arrive pas à m'inscrire, l'image contenant le code de validation s'affiche pas donc impossible de s'inscrire...)
Bref j'ai un leger problème et j'avoue que j'arrive vraiment pas à voir d'où ça peut venir.
Je fais actuellement un jeu en XNA (en 2D) et je gère les collisions avec une classe statique, j'ai une liste dans cette classe qui regroupe toutes les entités de la partie. A chaque fois que je créé une nouvelle entitée je l'ajoute à la liste et à chaque Update de game je fais tout simplement un "CheckCollision" de la classe statique CollisionManager.
Mon problème est sur cette fonction, CheckCollision :
public static float CheckCollisions()
{
float mResult = 0;
foreach (WorldEntity entity1 in mListCollidableEntity)
foreach (WorldEntity entity2 in mListCollidableEntity)
if ((entity1 != entity2) && (entity1 is Frog) && (entity2 is CollisionableEntity))
{
mResult = TestPercentageCollision(entity1, entity2);
if (mResult != 0)
System.Windows.Forms.MessageBox.Show("1 : " + mResult.ToString());
}
if (mResult != 0)
System.Windows.Forms.MessageBox.Show("2 : " + mResult.ToString());
return mResult;
}
TestPercentageCollision me renvoie le pourcentage de pixel en collision de ma Frog en collision avec le CollisionableEntity, donc quand ma Frog entre en collision avec un CollisionableEntity j'ai bien une MessageBox qui s'affiche avec le pourcentage, mais ca marche que pour la première, la deuxième c'est comme si mResult repassé à 0, en gros il va y avoir une collision, j'ai "1: 65" qui s'affiche dans une MessageBox, puis "1: 87", puis "1: 25", puis plus rien jusqu'à la prochaine collision, et j'ai aucune idée de pourquoi le mResult repasse à 0...
Merci d'avance, en espérant avoir était assez clair.
(Encore désolé si c'est pas sur le bon forum... )
Partager