Vautour

Soyez le premier à donner votre avis sur cette source.

Vue 11 026 fois - Téléchargée 370 fois

Description

Un oiseau très collant que votre souris attire beaucoup.

Source / Exemple :


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

@+

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
29
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
17 février 2006

Ah, pis ca marche pas avec Firefox ! hmmm... 7/10
Messages postés
29
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
17 février 2006

C cool... TROP DE PUB DANS TON ZIP !
Messages postés
56
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
14 décembre 2017
1
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.
Messages postés
356
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
Bon, moi je voudrais savoir comment on fait pour bloquer la vitesse du vautour. tu peux m aider ???
Messages postés
9
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
9 juin 2003

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")<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") < 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)
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.