Bonsoir,
J'ai le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 var collisions = function() { var n = T.length; var Mp = masse.value*(1/5); for (var i = 1 ; i < n-1 ; i++) { var xP = T[i].x; var yP = T[i].y; var distanceObjet = Math.sqrt((x-xP)*(x-xP)+(y-yP)*(y-yP)); if (distanceObjet<(10+(Mp/2))){ T[i].style.backgroundColor="red"; } else{T[i].style.backgroundColor="blue"} } for (var j = i+1 ; j < n ; j=j++) { var xP2 = T[j].x; var yP2 = T[j].y; var distancePlanetes = Math.sqrt((xP-xP2)*(xP-xP2)+(yP-yP2)*(yP-yP2)); if (distancePlanetes<Mp){ T[j].style.backgroundColor="red"; } else {T[j].style.backgroundColor="blue"} } }
x et y représentent les coordonnées d'un div se déplaçant et rencontrant un div de coordonnées xP2 et yP2 fixe, stocké dans un tableau lorsqu'il est créé.
La collision entre ces 2 éléments fonctionne bien, je cherche désormais à tester la collision entre 2 divs dans le tableau (Mp représente le diamètre d'un div dans le tableau, donc quand la distance entre le centre de ces 2 divs est inférieure à la somme des rayons de ces 2 div = Mp = diamètre, il y a collision)
J'ai créé la variable j qui désigne un div dans le tableau tel que j=i+1, c'est à dire le div suivant dans le tableau T[]: lorsque je crée le div de coordonnées T[j].x = T[i+1].x et T[j].y= T[i+1].y, il est censé vérifier la collision avec un div créé précédemment, pas uniquement le dernier, c'est à dire tous les div présents dans le tableau avant que je crée celui-là.
Je cherche donc un moyen d'organiser ça, qui serait visible par un changement de couleur, mais pas moyen..
Merci pour votre aide
Partager