Il s'agit d'une machine à sous simple dont le résultat est soit gagné soit perdu. L'intéret de ce code est de pouvoir déterminer la combinaison du résultat soit aléatoirement, soit à l'avance. Le mouvement des roulettes est entièrement fait en AS, pas de clip de roulette en mouvement.
Pas mal de paramètres sont modifiables. Je vous laisse modifier au plaisir les graphismes ^^
Source / Exemple :
var ecartDessin=30;//Correspon aussi à la hauteur des dessins
var yRoulettes=55;//Le y pour placer les roulettes
var nbDessins=6;//le nombre de dessins différents
var tabCombinaison=new Array();//Tableau dans lequel on va mettre la combinaison à afficher
var vitesseRoulettes=40;//La vitesse de défilement des roulettes
var nbRoulettes=3;//Le nombre de roulettes
var numArretDefil=1;//Le numéro de la roulette à arreter
var perdu=0;//c'est gagné d'office :)
for(var i=0;i<nbRoulettes;i++){
tabCombinaison.push(Math.floor(Math.random()*nbDessins)+1);//On ajoute une valeur aléatoire dans la table de combinaison
//On vérifie au fur et à mesure si le joueur a perdu ou gagne
if(tabCombinaison[i]!=tabCombinaison[i-1] && tabCombinaison[i-1]!=undefined)//Si la valeur actuelle est différente de la précédente c'est perdu
perdu=1;
i%2!=0 ? signe=1 : signe=-1;//Permet de décaler les roulettes au départ
this["fixe"+(i+1)]._y=(yRoulettes-3*ecartDessin)+(0.5+i*1.25)*ecartDessin*signe;//On place les roulettes en décalé
//pour chaque frame des roulettes
this["fixe"+(i+1)].onEnterFrame = function(){
if(this.mouvement){//Si elle est en mouvement
this._y-=vitesseRoulettes;//On modifie le y pour simuler le mouvement
//on vérifie l'ordonnée de la roulette, afin de simuler une boucle
if(this._y-60<=yRoulettes-this._height)
this._y=(i+0.5)*ecartDessin-60;
}
}
}
//action sur le bouton valider
btnValider.onPress = function(){
this._parent.lancerJeu();//on lance le jeu
this.enabled=false;//On désactive le bouton
this.play();//on anime le bouton
}
//fonction de lancement du jeu
this.lancerJeu = function(){
//on indique que toutes les roulettes sont en mouvement
for(var i=0;i<nbRoulettes;i++){
this["fixe"+(i+1)]. mouvement=true;
}
IdIntervalle=setInterval(this,"arretDefil",2000);//On demande à arreter la première roulette au bout de 2s, la deuxième au bout de 4s, etc
}
//La fonction qui arrete les roulettes
function arretDefil(){
if(numArretDefil<=nbRoulettes){//Si il reste des roulettes à arreter
this["fixe"+numArretDefil].mouvement=false;//on indique que la roulette n'est plus en mouvement
//on place la roulette de manière à afficher le dessin correspondant à sa combinaison
this["fixe"+numArretDefil]._y=(yRoulettes-3*ecartDessin)-((tabCombinaison[numArretDefil-1]-1)*(ecartDessin*2))+ecartDessin/2;
numArretDefil++;//On indique que la prochaine roulette à devoir etre arretée est la suivante
}else{//Si toutes les roulettes ont été arretée
clearInterval(_root.IdIntervalle);//on clear l'intervalle qui appelle la fonction d'arret
perdu==0 ? gotoAndStop("gagne") : gotoAndStop("perdu");//On va à la frame correspondant au résultat
}
}
stop();
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.