<html>
<head>
<title>Iwaweb - Vautour</title>
<script language="javascript">
posiX=0; //position en X de la souris
posiY=0; //position en Y de la souris
img=0;
var x=new Array();
var y=new Array();
var instruction=new Array();
t=0;
t1=0;
vitesse=5; //vitesse à laquelle l'oiseau se déplace
function autre()
{
if(posiX && posiY)
{
posibirdX=document.all.calque_oiseau.style.pixelLeft; //position de l'image
posibirdY=document.all.calque_oiseau.style.pixelTop;
if(posiX>posibirdX+141 || posiX<posibirdX)
{
calcul();
if(t!=posiX || t1!=posiY)
{
t=posiX;
t1=posiY;
instruction[0]=Math.abs(diffX/vitesse);
instruction[1]=0;
if(diffX<0){instruction[2]=-vitesse;}
else{instruction[2]=vitesse;}
instruction[3]=Math.abs(diffY/vitesse);
instruction[4]=0;
if(diffY<0){instruction[5]=-vitesse;}
else{instruction[5]=vitesse;}
}
if(instruction[1]<instruction[0])
{
document.all.calque_oiseau.style.pixelLeft=document.all.calque_oiseau.style.pixelLeft+instruction[2];
instruction[1]++;
}
if(instruction[4]<instruction[3])
{
document.all.calque_oiseau.style.pixelTop=document.all.calque_oiseau.style.pixelTop+instruction[5];
instruction[4]++;
}
}
if(posiX<=posibirdX+141 && posiX>=posibirdX)
{
calcul();
if(t1!=posiY)
{
t1=posiY;
instruction[3]=Math.abs(diffY/vitesse);
instruction[4]=0;
if(diffY<0){instruction[5]=-vitesse;}
else{instruction[5]=vitesse;}
}
if(instruction[4]<instruction[3])
{
document.all.calque_oiseau.style.pixelTop=document.all.calque_oiseau.style.pixelTop+instruction[5];
instruction[4]++;
}
}
//charge les images pour que l'oiseau tourne la tête vers la gauche ou la droite
if((posiX-(posibirdX+70))>0 && img){document.images[0].src="images/oiseau.gif";img=0;}
if((posiX-(posibirdX+70))<0 && !img){document.images[0].src="images/oiseau2.gif";img=1;}
}
document.onmousemove=deplacement;
document.onkeydown=changement_vitesse;
function changement_vitesse() //la fonction changement de vitesse est appelée quand on appuie sur + ou -
{
code=event.keyCode;
if(code==109 && vitesse>1)
{
vitesse--;
}
if(code==107 && vitesse<20)
{
vitesse++;
}
}
function deplacement() //au changement de position de la souris, cette fonction est appelée
{
posiX=window.event.clientX;
posiY=window.event.clientY;
}
function calcul()//cette fonction détermine le coin de l'image qui est le plus pres de la souris
{
x[1]=posiX-posibirdX;
y[1]=posiY-posibirdY;
x[2]=posiX-(posibirdX+141);
y[2]=posiY-posibirdY;
x[3]=posiX-(posibirdX+141);
y[3]=posiY-(posibirdY+113);
x[4]=posiX-posibirdX;
y[4]=posiY-(posibirdY+113);
temp=1000000000;
for(i=0;i<5;i++)
{
if(Math.sqrt(Math.pow(x[i],2)+Math.pow(y[i],2))<temp)
{
temp=Math.sqrt(Math.pow(x[i],2)+Math.pow(y[i],2));
val=i;
}
}
diffX=x[val];
diffY=y[val];
return diffX,diffY;
}
setTimeout("autre()",20); //rappelle la fonction toutes les 20ms pour un affichage de 50fps
}
</script>
</head>
<body onload="autre()" onclick="effacer()">
<p align="center"><font face="verdana" size="2">Appuyez sur + ou - pour modifier la vitesse</font></p>
<div id="calque_oiseau" style="position:absolute;height:113px;width:141px;top:100px;left:179px"><img src="images/oiseau.gif" height="113" width="141" name="oiseau"></div>
</body>
</html>