Collisions entre deux objets

Fermé
MaxenceG18 Messages postés 1 Date d'inscription mercredi 13 octobre 2021 Statut Membre Dernière intervention 13 octobre 2021 - 13 oct. 2021 à 22:03
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 - 14 oct. 2021 à 08:22
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

jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 4 705
14 oct. 2021 à 00:55
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;


0
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 Ambassadeur 1 556
14 oct. 2021 à 08:22
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.
0