</STYLE>
<BODY onload=zyva()> <DIV><IMG id=Om src="C:\A\03.gif" style="DISPLAY: none"> <SCRIPT> document.body.scroll="yes" document.body.style.cursor="crosshair" //------------------------ N=5; // nombre de boules am=1.08; // amortissement en=0.8; // energie t=48; // taille //------------------------ img=0 ym=0;xm=0 xmb=0;ymb=0 vx=new Array(N) vy=new Array(N) xb=new Array(N) yb=new Array(N) for(i=0;i<N;i++){vx[i]=0;vy[i]=0}
function cpaspossible() { //---choc souris contre boules--------------------------- for(i=0;i<N;i++){ xm2 = (img[i].style.pixelLeft+(img[i].style.pixelWidth/2) - xm) + 0.05 ym2 = (img[i].style.pixelTop+(img[i].style.pixelHeight/2) - ym) + 0.05 if (xm2<0) s=-1; else s=1; //---sauve pos xb[i]=img[i].style.pixelLeft yb[i]=img[i].style.pixelTop //---distance entre la boule et la souris r = s*Math.sqrt(Math.pow(xm2,2)+Math.pow(ym2,2)) //---si < rayon boules if (Math.abs(r)<t){ //---calcul angle a = Math.atan(ym2/xm2)*180/Math.PI m = (a - Math.floor(a/360)*360)*Math.PI/180 //---calcul vitesse déplacement souris d=Math.sqrt(((xm-xmb)*(xm-xmb))+((ym-ymb)*(ym-ymb))) //---gestion de la répulsion de la boule c=t-Math.abs(r);if (c<0)c=0 //---déplacement boule img[i].style.pixelLeft+= s*(c+d)*Math.cos(m) img[i].style.pixelTop+= s*(c+d)*Math.sin(m) //---sauvegarde vitesse déplacement boule vx[i]+=img[i].style.pixelLeft-xb[i] vy[i]+=img[i].style.pixelTop-yb[i] } //-----choc des boules entre elles for(j=0;j<N;j++){ if(i!=j){ xm2 = (img[j].style.pixelLeft - img[i].style.pixelLeft) + 0.05 ym2 = (img[j].style.pixelTop - img[i].style.pixelTop) + 0.05 if (xm2<0) s=-1; else s=1; xb[j]=img[j].style.pixelLeft yb[j]=img[j].style.pixelTop r = s*Math.sqrt(Math.pow(xm2,2)+Math.pow(ym2,2)) if (Math.abs(r)<=2*t){ a = Math.atan(ym2/xm2)*180/Math.PI m = (a - Math.floor(a/360)*360)*Math.PI/180 d=en*Math.sqrt(((vx[i])*(vx[i]))+((vy[i])*(vy[i]))) c=2*t-Math.abs(r);if (c<0)c=0 img[j].style.pixelLeft+= s*(c+d)*Math.cos(m) img[j].style.pixelTop+= s*(c+d)*Math.sin(m) vx[j]+=img[j].style.pixelLeft-xb[j] vy[j]+=img[j].style.pixelTop-yb[j] } } } //-----amorti----- if(Math.abs(vx[i])>1)vx[i]=vx[i]/am; else vx[i]=0 if(Math.abs(vy[i])>1)vy[i]=vy[i]/am; else vy[i]=0 //-------gestion rebonds bords fenêtre-------- if(img[i].style.pixelTop<0 && vy[i]<=0)vy[i]=-vy[i]+1 if(img[i].style.pixelTop+img[i].style.pixelHeight>document.body.offsetHeight && vy[i]>=0)vy[i]=-vy[i]-1 if(img[i].style.pixelLeft<0 && vx[i]<=0)vx[i]=-vx[i]+1 if(img[i].style.pixelLeft+img[i].style.pixelWidth>document.body.offsetWidth && vx[i]>=0)vx[i]=-vx[i]-1 //---position finale------------ img[i].style.pixelLeft+=vx[i] img[i].style.pixelTop+=vy[i] } } //---------lancement----------------- function zyva() { for(i=0;i<N;i++) { code="<img src='"+Om.src+"' style='position: absolute;left:"+(document.body.offsetWidth+2*t*i)+";top:100;width:"+(2*t)+";height:"+(2*t)+"'>" document.body.insertAdjacentHTML("afterBegin",code) } img=document.all.tags("IMG")
setInterval("cpaspossible()",1) } //----(ma)traque de la souris-------- document.onmousemove = momove; function momove() { xmb=xm ymb=ym xm = window.event.clientX ym = window.event.clientY }
</SCRIPT> </DIV><FONT size=2></FONT>
|