Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

VAUTOUR


Information sur la source

Catégorie :Trucs Amusants Niveau : Initié Date de création : 27/08/2002 Date de mise à jour : 23/12/2002 12:09:31 Vu / téléchargé: 7 972 / 267

Note :
5,33 / 10 - par 3 personnes
5,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Un oiseau très collant que votre souris attire beaucoup.
 

Source

  • <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>
 <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> 

Conclusion

Retrouvez toutes les MAJ de ce script sur http://www.iwaweb.net/

@+
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de NicolleauElise le 30/10/2002 17:29:08

Pas de zip, pas de capture, que dalle !
tu te fous un peu de notre gueule ! c un truc de codes sources ici, pas un écran publicitaire pour ton site !

signaler à un administrateur
Commentaire de iwaweb le 23/11/2002 12:10:21

C'est un truc à essayer en ligne et puis avant de m'insulter faudrait peut être essayer car les sources sont disponibles sur le site.

signaler à un administrateur
Commentaire de iwaweb le 23/11/2002 12:10:28

C'est un truc à essayer en ligne et puis avant de m'insulter faudrait peut être essayer car les sources sont disponibles sur le site.

signaler à un administrateur
Commentaire de pleejulien le 11/05/2003 06:26:23

Un conseil, tu devrais faire attention à la manière d'écrire tes scripts... ils sont très peu lisibles (je pense notamment à un script qui fait afficher des menus dans ton site).
Si programmer ainsi t'aide toi à visualiser ton code rapidement sur l'instant, à long terme, tu dois avoir un peu de mal à t'y retrouver, non ?
A mon avis, en cherchant à allèger la visualisation de ton code (éviter de former un gros pavé), tu en as trop fait... ce qui fait que ton code ressemble à un gros pavé mais dans lequel tu as sauté une ligne sur deux...
Je pense que ceci est plus facile à travailler sur des scripts déjà faits (car en plus, ca te montre qu'il est difficile de les reprendre et recomprendre)... tu voies d'avantage qu'elle disposition est meilleure.

Pour t'aider, sache qu'il est préférable de marquer l'accolade ouvrante à la fin d'une ligne et pas au début de la suivante (c'es la premiere lettre de la fonction qui te donne le niveau d'ascendance...)
ex :
function maFonction { //commentaires très court... 30/40 cars max
// éventuel commentaire plus long, plus détaillé
monAction1;
monAction2;
};

Ensuite, il faut savoir que des accolades ne servent qu'a réunir des instructions ! donc ca ne sert à rien d'en abuser par exemple :
if (maCondition) monInstrucion
else if (maCondition2) {
  monInstruction2_1;
  monInstruction2_2;
}
else alert('aucune condition remplie');

Tu voies déjà le gain de place et de lisibilité que ca engendre si tu imagines ce code de la manière dont tu l'aurais codé...

Pour le troisième conseil, il s'agit de rajouter des espaces... ca parait bizarre, mais quand tu y réfléchis, la typographie des langues (écrites/parlées etc, pas machine) les intègre uniquement pour facilité la lisibilité et la compréhension...

un exemple en copier/coller d'un bout de ton site :
if(eval("document.all."+xr[xs]+".style.pixelLeft")&lt;0){action();}

tu te dis "tout tient sur une ligne, c'est cool", mais est-ce que tu est capable là, de dépouiller rapidement ce code ?
voila mon interprétation :
if (eval("document.all." + xr[xs] + ".style.pixelLeft") &lt; 0)
  action();
c'est sur 2 lignes, ok, mais on sait rapidement que la premiere ligne est la condition, la deuxième l'instrucion... et dans la premiere partie, tu considère plus facilement la chaîne transmise à eval().
lorsqu'il y a de nombreuses parenthèses, il m'arrive aussi de rajouter un espace avant la première, pour distinguer le bloc et comprendre où ca commence et où ca fini... (on passe moins de temps à faire F5 ;) )

Voila, sinon, dans le script, il y a de l'idée, il faut que tu l'aboutisses un peu plus (je pense qu'il est plus utile pout toi de te demander ce qui pourrait-être amélioré plutôt que je te donne une liste de suggestions... dans un premier temps)

signaler à un administrateur
Commentaire de zut69 le 28/01/2005 21:10:12

Bon, moi je voudrais savoir comment on fait pour bloquer la vitesse du vautour. tu peux m aider ???

signaler à un administrateur
Commentaire de iwaweb le 03/02/2005 13:00:04

il suffit de modifier la variable vitesse pour modifier la vitesse par défaut. Et si tu ne veux plus que la vitesse puisse être changée avec le clavier met un commentaire sur document.onkeydown.

signaler à un administrateur
Commentaire de glork le 09/09/2005 03:58:29

C cool... TROP DE PUB DANS TON ZIP !

signaler à un administrateur
Commentaire de glork le 09/09/2005 04:00:16

Ah, pis ca marche pas avec Firefox ! hmmm... 7/10

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.