Comment savoir si 2 rectangle se touche?

kingb330 Messages postés 16 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 10 mai 2009 - 10 mai 2009 à 02:12
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 10 mai 2009 à 10:08
Bonsoir,

Comme projet final pour mon cours de programmation, je fais un petit jeu en c#.
Mon jeu est en quelque sorte un Frogger version simplifié.
Mon problême est que même si je prends une commande du genre...

...
            if(personnage.IntersectsWith(dessin1))
            {
                tmDessin.Stop();
                tmChrono.Stop();
                MessageBox.Show("Vous êtes morts");
            }
...

...elle marche, mais seulement si mon personnage, que je contrôle au clavier, rentre en contact en mouvement avec le dessin.
en d'autres mots, je ne sais pas comment faire une validation si mon personnage ne bouge tout simplement pas.

Merci!

3 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
10 mai 2009 à 08:51
Bonjour,
je ne comprends pas le probleme.
il suffit d'appeller cette méthode même si le personnage est immobile, non ?

C# is amazing, enjoy it!
0
kingb330 Messages postés 16 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 10 mai 2009
10 mai 2009 à 08:55
Oui et c'est justement le problème.  La méthode fonctionne seulement quand les 2 rectangles bougent, mais quand mon rectangle "personnage" ne bouge pas et entre en contact avec l'autre rectangle, rien ne se passe, la condition booléenne ne change pas.
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
10 mai 2009 à 10:08
Bonjour,

J'imagine que Personnage et Dessin1 sont tout deux des Rectangles.
Peux-tu afficher sous debug, leurs données respectives ? juste pour voir s'il y a ou non intersection ?

C# is amazing, enjoy it!
0
Rejoignez-nous