y avait encore un problème de parseint dans collision, j'additionnais toujours des chaines
Code PHP :
<?php
<html>
<body>
<div id='c1' style="position : absolute; left: 88px; top: 160px; background:#f00; width:100px; height:100px" >c1</div>
<div id='c2' style="position : absolute; left: 84px; top: 150px; background:#0f0; width:100px; height:100px;">c2</div>
<div id='c3' style="position : absolute; left: 308px; top: 160px; background:#88f; width:100px; height:100px;">c3</div>
<script>
function sommetDansCarre (x, y, carrePivot)
{
if ( ( x >= parseInt(carrePivot.style.left) ) &&
( x <= parseInt(carrePivot.style.left) + parseInt(carrePivot.style.width) -1) &&
( y >= parseInt(carrePivot.style.top) ) &&
( y <= parseInt(carrePivot.style.top) + parseInt(carrePivot.style.height) -1) )
{
return true;
}
else
{
return false;
}
}
function Collision (Carre2, Carre1)
{
gauche = parseInt(Carre2.style.left);
haut = parseInt(Carre2.style.top);
droite = gauche + parseInt(Carre2.style.width) - 1 ;
bas = haut + parseInt (Carre2.style.height) -1;
if (sommetDansCarre ( gauche, haut, Carre1) || sommetDansCarre ( droite , haut , Carre1) ||
sommetDansCarre ( gauche, bas, Carre1 ) || sommetDansCarre (droite, bas, Carre1) )
alert("collision entre "+Carre2.innerHTML+" et "+Carre1.innerHTML);
else
alert(" pas de collision entre "+Carre2.innerHTML+" et "+Carre1.innerHTML);
}
Collision( document.getElementById('c2'), document.getElementById('c1') );
Collision( document.getElementById('c1'), document.getElementById('c2') );
Collision( document.getElementById('c3'), document.getElementById('c1') );
Collision( document.getElementById('c1'), document.getElementById('c3') );
Collision( document.getElementById('c3'), document.getElementById('c2') );
Collision( document.getElementById('c2'), document.getElementById('c3') );
</script>
</body>
</html>
moralité, outre qu'il faudrait que je vérifie un peu plus ce que je poste ici ^^, le '+' c'est troublant en js