Kommunauty
Connexion
Inscription

Le déplacement aléatoire

le 1 septembre 2011 • Flash • par Dawlin

Bonjour à tous, dans ce tutoriel on va voir comment on peut donner à un objet un effet de déplacement continu aléatoire.

Voici tout de suite un petit exemple ici :

Bon. j'en avais fait un autre beaucoup mieux avec un poisson qui se déplacait et qu'on pouvait nourrir et tout, mais ça ça sera pour la fin

Voici le code entier, commenté, parce qu'à la base ce code ne visait pas un tutoriel, donc il est maintenant fini, et je ne peux que vous le donner tel quel, par contre je l'ai bien commenté presque ligne par ligne  :


//On charge une bibliothèque qui va être utile
import mx.utils.Delegate

//On déclare une fonction qui permet de générer un nombre aléatoirement entre min et max
function randRange(min:Number, max:Number):Number {
     var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
     return randomNum;
}
// ########### Constantes :
//rrot et rarot sont la plage dans laquelle la tête peut tourner
rrot = 10;
rarot = 0-rrot;
vitesse = 3;
//MAXIMUMS positions :
larg = 390;
long = 290;

//Timerisation
/*
On va s'en servir pour définir quand est-ce qu'on tourne, quand est-ce qu'on avance, etc....
*/
timer =0;
freq = 20;
coef = 1.5;
onEnterFrame = function(){
//50fois par secondes on execute le script de deplacement aléatoire
bouge(smbl);
}
//Tout est regroupé dans une fonction, c'est très pratiqur pour l'utiliser ailleurs :)
bouge = function(vocc){
//On définit quel clip va bouger
var clp:MovieClip = vocc;

clp.onEnterFrame = function(){
//On note ses positions initiales
ax = clp._x;
ay = clp._y;
timer++;
//Toutes les freq*coef images,on revient à 0
if(timer>freq*coef){
timer=0;
//De temps en temps, on fait tourner le clip
}else if (timer>freq){
clp._rotation+=r;
}else{
//De temps en temps on recalcule un nouvel angle de rotation
r = randRange(rarot,rrot);
}
//On le fait avancer en permanence VERS L'AVANT
clp._y -= vitesse*Math.cos(clp._rotation*Math.PI/180);
clp._x += vitesse*Math.sin(clp._rotation*Math.PI/180);

//###########Detection de collision avec les barres qui limitent l'animation
if(clp.smbl2.hitTest(b1)){
clp._y = long;
}
if(clp.smbl2.hitTest(b2)){
clp._y = 0;
}
if(clp.smbl2.hitTest(b3)){
clp._x = larg;
}
if(clp.smbl2.hitTest(b4)){
clp._x = 10;
}
//Si il y a collision on le remet au bon endroit :)
}
}

Pour que ça marche il vous faut des barres pour limiter l'animation, qui ont pour occurrence en partant du haut et dans le sens des aiguilles d'une montre : b1 b4 b2 b3

Et voilà, c'est fini Alors vous allez me dire "ouais tranquille vite fait le tutoriel" mais en fait ce qui compte c'est surtout ce qu'on peut faire avec ! Regardez : une petite intelligence artificielle qui détecte des présences et voilà :

(cliquez n'importe où pour nourrir le poisson, il ira manger quand il détectera la présence) :

Et voilà, merci d'avoir suivi ce tutoriel,

Dawlin

  
7 commentaires

Bon article, ça peut être utile. Merci !

le 3 septembre 2011

C'est surtout qu'il va servir le 6, quand un gros article beaauuucoup plus intéressant va sortir

Mais chut c'est un secret

le 3 septembre 2011

On a hâte de voir ça !

le 4 septembre 2011

Bonjour je débute en informatique et voudrai savoir ou mettre ce code

le 23 octobre 2011

Rends toi sur le tuto ci dessous pour apprendre tout bien dès le début

Apprendre le Flash

le 26 octobre 2011

Bonjour, le code marche avec Flash Professional ?

le 21 janvier 2012

C'est la même chose, c'est juste une version "améliorée" du logiciel.

le 19 avril 2012



Ajoute un commentaire !

Ajouter une image... Trouvée sur internet » De mon PC »
Adresse URL :
Adresse de la page de la vidéo :
Taille du texte :
Couleur du texte :

Article lu 6830 fois.