Collisions entre deux objets

Signaler
Messages postés
1
Date d'inscription
mercredi 13 octobre 2021
Statut
Membre
Dernière intervention
13 octobre 2021
-
Messages postés
17119
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 octobre 2021
-
Salut ! Voici mon problème:

Je cherche à comparer un élément d'une liste avec tout les autres éléments de cette même liste.



Explication du code :
Je cherche à créer un jeu avec des boules rouges. Pour se faire je veux faire spawn aléatoirement sur la fenêtre les boules de sorte à ce qu'elles ne puissent pas spawn l'une sur l'autre, car elle sont sensées subir des collisions entre elles .

J'utilise donc la fonction cercle d'un module qui prend pour argument (x, y, rayon)

Ou x et y sont les coordonnées du centre des boules.
Je choisis 10 comme rayon, donc la distance entre le centre de 2 boules doit être supérieure a 20.
Donc que |(x,y d'une boule)-(x,y de chacune des autres)| >= 20

J'ai essayé ce programme :



(ici je crée volontairement 4 boules ayants les même coordonnée pour le test)
Des boules sont bel et bien déviée et remises aléatoirement sur la fenêtre mais il arrive que parmi celles-ci certaines s'enchevêtrent.
Je suppose que c'est parce que la boucle ne revérifie pas les nouvelles coordonnées obtenues mais je n'arrive pas à faire autrement.
J'ai également essayé de remplacer if par while mais la fenêtre plante

Je vous demande alors de l'aide les petits crackos de python ^^ je vous en serais très reconaissant. Merci !

2 réponses

Messages postés
33704
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2021
3 766
Bonjour,

Le code se partage directement sur le forum en utilisant les BALISES DE CODE
(explications à lire entièrement, disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code )

Avec des images.. on ne peut pas copier/coller .. ce qui peut être génant pour tester et/ou pour réécrire la/les ligne(s) de code qui pourrai(en)t poser problème;


Messages postés
17119
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 octobre 2021
909
bonjour,
ton calcul des distances n'est pas correct pour des cercles, il serait correct pour des carrés. ce n'est pas trop grave.

par contre, ton code ne fait pas du tout ce que tu imagines. pour comprendre ce qu'il fait, affiche les valeurs de i et de t dans la boucle.